Javascript cors不解析,尽管设置了标题,但我不想使用jsonp
我正在尝试使用ajax jquery调用api,它应该会给我json响应,我使用了以下方法Javascript cors不解析,尽管设置了标题,但我不想使用jsonp,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在尝试使用ajax jquery调用api,它应该会给我json响应,我使用了以下方法 $.ajax({ type:'GET', url: 'http://example.com', headers:{ 'Access-Control-Allow-Origin':'*', 'Access-Control-Allow-Headers':'X-Requested-With',
$.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);
}
});
但这仍然在控制台上给了我以下警告
已阻止跨源请求:同一源策略不允许读取位于的远程资源
这给了我一个错误
网络错误:401未经授权的访问控制允许-*是响应头,而不是请求头。它们必须由example.com设置,而不是由JavaScript设置
如果您可以授权自己的代码阅读其他任何人的网站,那么这将是一个毫无意义的授权系统。访问控制允许标头需要来自Web服务器,而不是由客户端发送。 您不能在调用中设置它们,必须修改Web服务器配置。 401表示您需要身份验证,在这种情况下,源代码需要与*不同。此外,您还需要jQuery来允许发送身份验证,并在服务器上添加访问控制允许凭据:true头。 此外,您还需要在客户端启用cors
$.support.cors=true header Access Control Allow Origin是响应头,它应该从api设置,该api是http://example.com 不是你自己的ajax请求。好的,谢谢你的澄清,我不能接触服务器端,所以,请告诉我有没有一种方法可以避免客户端ajax请求中的cors?没有,您无法避免客户端ajax请求中的cors问题…您必须询问web应用程序中使用的web api的用户,并告诉他们在请求来自您的域时添加标头访问控制允许来源。。