1

我使用 SignalR 作为我的推送服务器(.NET 的东西),在这个过程的某个地方,脚本发送一个 ajax 请求,但不发送 cookie。

但是,当我在新选项卡中打开该请求时,所有 cookie 都会同时发送。

笔记:

  1. X-Requested-With未定义(代码为$.ajax(),但似乎浏览器将此请求视为跨域请求)
  2. 推送服务器正在运行domain.com:7171
  3. 应用服务器正在运行domain.com
  4. URL 与GET方法一起使用
  5. 当我们从地址栏向同一个 URL 发送一个简单的请求(简单的 HTTP Get)时,cookie 被发送

为什么 cookie 在 HTTP get 请求时发送到同一个 URL,而在 ajax 请求时不发送?

4

1 回答 1

0

您提到这是从 domain.com 到 domain.com:7171 的跨域请求。默认情况下,跨域请求中不包含 Cookie。.withCredentials = true; 您需要通过在 JQuery 请求中进行设置来明确表明您想要包含 cookie 。您的服务器还需要使用 header 进行响应Access-Control-Allow-Credentials: true。您可以在这里了解更多信息:http: //www.html5rocks.com/en/tutorials/cors/

于 2012-12-18T15:57:46.087 回答