【发布时间】:2019-02-11 02:31:48
【问题描述】:
我正在我的本地主机上做一个小项目,并希望它向我的其他服务器发送一个 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 工具中查看 Network 选项卡时,我也没有看到任何预检 OPTION 请求。
我没有详细说明我如何在服务器上处理带有Access-Control-Allow-Origin: * 标头等的请求,因为您可以看到问题发生在之前,即服务器一开始没有获取 cookie .
cookie 有 SameSite=Lax,但这不会改变行为。
有没有办法强制发送Cookie?
【问题讨论】:
标签: javascript cookies xmlhttprequest cross-domain