我使用SignalR作为我的推送服务器(.NET的东西),在这个过程的某个地方,脚本发送一个ajax请求,但不发送cookie。
但是,当我在新标签中打开该请求时,所有Cookie都会同时发送。
注意:
X-Requested-With
未定义(代码为$.ajax()
,但似乎浏览器将此请求视为跨域请求)domain.com:7171
domain.com
GET
方法为什么在HTTP获取请求时将cookie发送到同一个URL,并且当它是ajax请求时不发送?
答案 0 :(得分:0)
您提到这是从domain.com到domain.com:7171的跨域请求。默认情况下,Cookie不包含在跨域请求中。您需要通过设置.withCredentials = true;
in your JQuery request明确表明您想要包含Cookie。您的服务器还需要使用标头Access-Control-Allow-Credentials: true
进行响应。您可以在此处了解详情:http://www.html5rocks.com/en/tutorials/cors/