我有这个代码段,可以使用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时,可以看到设置了正确的标题:
访问控制允许来源:*
使用开发人员工具进行检查时,它在那里。但是,从页面运行该代码段时,“网络”选项卡将其状态列为“已取消”,对于标题,我只会看到“显示了临时标题”,而对于真正的标题则什么也没有。
API服务器基于WordPress,我相信我正在正确设置标题。从here开始尝试了两种方法。
答案 0 :(得分:0)
哦,我不得不删除withCredentials
,因为它不允许使用通配符。此外,API URL缺少尾部斜杠。当对WP发出请求时,它301重定向到带有尾部斜杠的URL。但是,第一页(请求到达的页面)没有标题。