我有这个片段,我可以在任何站点上使用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时,我可以看到设置了正确的标题:
Access-Control-Allow-Origin:*
在使用开发人员工具进行检查时,它就在那里。但是,从页面运行该代码段时,“网络”选项卡会将其状态列为“已取消”,而对于标题,我只会看到“显示临时标题”,而实际标题则没有。
API服务器是基于WordPress的,我相信我正在设置标题。尝试了here的两种方法。
哦,我不得不放弃withCredentials
,因为它不允许使用通配符。此外,API URL缺少尾部斜杠。当向WP发出请求时,它会使用尾部斜杠重定向到URL。但是,第一页(请求所在的页面)没有标题。