我正在尝试使用 ajax jquery 调用一个 api,它应该给我 json 响应,我使用了下面的方法。
$.ajax({
type:'GET',
url: 'http://example.com',
headers:{
'Access-Control-Allow-Origin':'*',
'Access-Control-Allow-Headers':'X-Requested-With',
'Access-Control-Allow-Methods': 'POST, GET',
},
//headers:{"Access-Control-Allow-Origin":"*"},
dataType: "json",
success: function(msg) {
alert("data loaded");
console.log(msg);
}
});
但这仍然在控制台上给了我以下警告跨源请求被阻止:同源策略不允许在 http://example.com 读取远程资源
它给了我错误网络错误: 401 未经授权
Access-Control-Allow-*
是响应标头,而不是请求标头。它们必须由example.com
设置,而不是你的JavaScript。
如果您可以授权自己的代码阅读其他人的网站,这将是一个毫无意义的授权系统。
访问控制允许标头需要来自 Web 服务器,而不是由客户端发送。您无法在通话中设置它们,您必须修改 Web 服务器配置。401 表示您需要身份验证,在这种情况下,源需要与 * 不同。此外,您需要jQuery来允许发送身份验证,并在服务器上添加Access-Control-Allow-Credentials:true标头。此外,您还需要在客户端启用 cors $.support.cors = true;