Cookie不会在跨源请求中发送

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie不会在跨源请求中发送相关的知识,希望对你有一定的参考价值。

我正在我的localhost上开展小方项目,并希望它将JSON跨源请求发送到我在php中实现一些REST API的其他服务器。

要正确处理请求,服务器必须接收用户登录时设置的cookie。

当我登录到我的服务器并在浏览器中手动打开API URL时,我可以在F12工具中看到与请求一起发送的Cookie:标头。但是,当我从本地主机上的脚本执行跨源请求时:

var xhr = new XMLHttpRequest();
xhr.open('GET', "https://devbox.my.domain/api.php", true);
xhr.setRequestHeader('Accept', 'application/json'); 
xhr.withCredentials = true;
xhr.send();

... Cookie:标题未发送,我在F12工具中查看OPTION标签时看不到任何预检Network请求。

我没有显示我如何使用Access-Control-Allow-Origin: *标头等处理服务器上的请求的详细信息,因为您可以看到之前出现问题,即服务器首先没有获取cookie。

cookie有SameSite=Lax,但这不会改变行为。

有没有办法强制发送Cookie?

答案

如果你想发送这个cookie的内容,cookie会保留在前端,你需要通过get call发送它或者保存inyo标题

以上是关于Cookie不会在跨源请求中发送的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2,Spring Security:跨源 POST 不会发送 cookie

Angular 10 应用程序不会在跨域请求中发送 JWT 刷新令牌

明年找到好工作:面试题打卡第二天

明年找到好工作:面试题打卡第二天

为跨源请求设置 cookie

为跨源请求设置 cookie