我有一个从客户端发送的 cookie,用作我的 MVC Web 服务的一部分,但是现在我已将集线器集成到此应用程序中,集线器不会发送 cookie,而 mvc 应用程序会发送该 cookie。
现在,在阅读其他类似的问题(不是很多)后,cookies域似乎是罪魁祸首,或者路径没有设置。
目前我的系统有 2 个网络应用程序,即 ui 和 service。在我的开发环境中是这样的:
Service
http://localhost:23456/<some route>
UI
http://localhost:34567/<some route>
因此,在上面的示例中,用户界面将向服务发送查询,在响应中获取授权 cookie,该 cookie 在其他地方使用。
在此示例中,来自服务的 cookie 域是localhost
,根据我在其他问题上阅读和看到的内容,不需要端口,它会自动允许所有端口。
HTTP cookie 端口特定吗? https://stackoverflow.com/questions/1612177/are-http-cookies-port-specific
SignalR 连接请求不发送 cookie https://stackoverflow.com/questions/14251822/signalr-connection-request-does-not-send-cookies
所以在我看来,上面的 cookie 具有正确的域,并且路径设置为/
,所以它应该有效。但是它不会在 javascript 的请求中发送它们。
我的请求是一个 CORS 请求,所以我不确定是否有任何怪癖,但所有正常的 jquery ajax 调用都可以通过 cookie 将其发送到服务器,有什么想法吗?
哦,我的 cookie 也是 httponly,不确定这是否有什么不同......
==编辑==
试图排除一些东西,关闭了httponly,但它仍然拒绝将cookie发送到服务器,我还注意到一些突出的cookie问题,其中提到在某处添加以下代码以使ajax以某种方式运行:
$.ajax({
xhrFields: {withCredentials: true}
})
尝试使用它,但仍然没有运气,所以我没有想法。