gpt4 book ai didi

javascript - 设置自定义 header 时,不会在跨源 jquery ajax 请求中发送 Cookie

转载 作者:行者123 更新时间:2023-11-29 15:32:09 30 4
gpt4 key购买 nike

我们正在使用 jQuery 从主域向子域(跨源)发出 ajax 请求。我们设置了 CORS,一切正常,直到我们尝试发送带有请求的自定义 header 。如果在请求上设置了自定义 header ,则我们的 session cookie 将不再随请求一起发送。

jQuery 版本:2.1.4

我们的原始域名:http://example.com

我们的 session cookie 设置为子域使用,在 cookie 选项中使用 domain : .example.com

随子域的响应一起发送的 CORS header :

 Access-Control-Allow-Origin : http://example.com
Access-Control-Allow-Credentials : true
Access-Control-Allow-Headers : Origin, X-Requested-With, Content-Type, Accept, X-OurCustomHeader

此请求工作正常( session cookie 随请求一起发送):

 jQuery.ajax({
url: 'http://sub.example.com/someajaxroute',
xhrFields: { withCredentials: true },
}

此请求(带有自定义 header )不起作用(未发送 session cookie):

 jQuery.ajax({
url: 'http://sub.example.com/someajaxroute',
xhrFields: { withCredentials: true },
headers : { 'X-OurCustomHeader' : 'xxx'}
}

有谁知道为什么 jQuery/浏览器在第二个示例中不发送 cookie?


附言。我知道在 stackoverflow 上有很多关于 jquery CORS 的问题。我已经广泛地查看了它们,但找不到可以解决这个确切问题的方法。 请您仅在找到与该问题完全匹配的问题时才将其标记为重复。谢谢。

最佳答案

事实证明(正如@KevinB 所建议的)这是我们服务器上处理预检选项的方式的问题,与客户端无关。谢谢凯文。

关于javascript - 设置自定义 header 时,不会在跨源 jquery ajax 请求中发送 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33808232/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com