【发布时间】:2020-03-22 11:09:34
【问题描述】:
我想不出任何合适的标题。
我有两个网站在我的控制之下。域 A 和域 B。域 B 为域 A 设置所有必需的 CORS 标头。
域 A 向域 B 发出 ajax 请求。通过此请求,在域 B 上创建一个会话,并返回一个带有 jsessionid 的 cookie。
域 A 使用刚刚收到的 cookie 发出另一个 ajax 请求。在域 B 的会话上设置了一些值。这确实按预期工作。
然后,当我打开一个新选项卡并浏览到域 B 时,浏览器不会从 ajax 请求发送 cookie。这是为什么呢?
来自 ajax 请求的 cookie 是否只是暂时有效且仅对 ajax 请求有效?
额外测试
上述行为适用于 IE 11。我刚刚在最新的 Chrome 中进行了测试,但它根本不起作用。任何后续的 ajax 请求都不会发送任何 cookie。
示例请求:
$.ajax({
url: url,
success: function() {
// do something
},
xhrFields: {
withCredentials: true
}
});
【问题讨论】:
标签: jquery ajax cookies cross-domain