gpt4 book ai didi

asp.net - SignalR cookie 未从客户端发送

转载 作者:行者123 更新时间:2023-12-01 04:13:12 26 4
gpt4 key购买 nike

我有一个从客户端发送的 cookie,用作我的 MVC Web 服务的一部分,但是现在我已将集线器集成到此应用程序中,集线器不会发送 cookie,而 mvc 应用程序会发送该 cookie。

现在,在阅读其他类似的问题(不是很多)后,cookies域似乎是罪魁祸首,或者路径没有设置。

目前我的系统有 2 个网络应用程序,即 ui 和服务。在我的开发环境中是这样的:

服务 ojit_代码

用户界面 ojit_代码

因此,在上面的示例中,用户界面将向服务发送查询,在响应中获取授权 cookie,该 cookie 在其他地方使用。

在此示例中,服务中的 cookie 域是 http://localhost:23456/<some route> ,根据我在其他问题上阅读和看到的内容,不需要端口,它会自动允许所有端口。

Are HTTP cookies port specific?

SignalR connection request does not send cookies

所以在我看来,上面的 cookie 具有正确的域,并且路径设置为 http://localhost:34567/<some route> ,所以它应该可以工作。但是,它不会在 JavaScript 的请求中发送它们。

我的请求是一个 CORS 请求,所以我不确定是否有任何怪癖,但所有正常的 jquery ajax 调用都可以通过 cookie 将其发送到服务器,有什么想法吗?

哦,我的 cookie 也是 httponly,不确定这是否有影响......

==编辑==

已经尝试排除一些东西,关闭了httponly,但它仍然拒绝将cookie发送到服务器,我还注意到一些突出的cookie问题,其中提到在某处添加以下代码以使ajax表现出某种特定的行为方式:

$.ajax({
xhrFields: {withCredentials: true}
})

尝试使用它,但仍然没有运气,所以我没有主意。

最佳答案

我提出了一个问题,因为 SignalR 的 <版本 2 beta 存在与 CORS 和 cookie 相关的潜在问题。

https://github.com/SignalR/SignalR/issues/2318

但是,您可以通过附加以下内容来手动修复此问题:

xhrFields: {withCredentials: true}

对于 jquery.signalr-*.js 中的所有 ajax 请求,这将通过 CORS 发送 cookie,尽管我不知道这是否会对旧版浏览器或 IE 产生任何不利影响。

关于asp.net - SignalR cookie 未从客户端发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17742579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com