为啥 CORS 标头不被视为 XHR 调用的一部分?
Posted
技术标签:
【中文标题】为啥 CORS 标头不被视为 XHR 调用的一部分?【英文标题】:Why is CORS header not respected as part of an XHR call?为什么 CORS 标头不被视为 XHR 调用的一部分? 【发布时间】:2019-07-06 02:20:32 【问题描述】:我有这个 sn-p,我可以使用 jQuery 在任何站点的控制台上运行它,并且在我看到它的标头之前,请求就被取消了。
jQuery.ajax(
url:"https://example.com/api",
cache:false,
global:false,
crossDomain:true,
data:
'whatever': 1234
,
xhrFields:
withCredentials: true
,
dataType:"json"
);
在控制台中可以看到通常的“被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' 标头”。但是当我在新选项卡中自行加载我的 API URL 时,我可以看到设置了正确的标题:
访问控制允许来源:*
使用开发人员工具进行检查时会出现。但是,当从页面运行该 sn-p 时,“网络”选项卡将其状态列为“已取消”,对于标题,我只看到“显示临时标题”,而真正的标题则没有。
API 服务器是基于 WordPress 的,我相信我正确设置了标题。从here 尝试了这两种方法。
【问题讨论】:
【参考方案1】:哦,我不得不放弃withCredentials
,因为它不允许通配符来源。此外,API URL 缺少尾部斜杠。当向 WP 发出请求时,它 301 会重定向到带有斜杠的 URL。但是,第一页(请求到达的地方)没有标题。
【讨论】:
以上是关于为啥 CORS 标头不被视为 XHR 调用的一部分?的主要内容,如果未能解决你的问题,请参考以下文章