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