首先我知道很多问题都被问到了这个问题,但我真的试图找出问题所在,但没有什么帮助我。 我正在使用C#,ASP.NET,Javascript,AJAX并尝试使用API来获取一些信息,但每次都会出现此错误。当我尝试使用不同的API时,完美无缺。 API状态处于活动状态,但响应每次都失败。没有'Access-Control-Allow-Origin'标题出现在请求的资源上
误差看起来像: 1
我添加的权限配置文件:
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
但这并没有帮助我。我现在应该怎么做?我试了几个小时,结果也一样。
尝试在ajax调用中添加jsonp和crossDomain,但这对我也没有帮助。
$.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
crossDomain : true,
dataType: 'jsonp',
url: url + id,
type: 'GET',
contentType: 'application/json;',
success: function (valid) {
if (valid) {
} else {
}
}
});
}
谢谢大家的每一个答案。
问候
CORS设置和响应类型取决于API - 如果它不支持第三种第三方请求或JSONP没有什么可以做的。 –
但是当我打开错误的链接,我得到这样的东西:http://imgur.com/IbGASq1,所以我认为这种反应很好..: -/ – Katz
这是由于[同源策略](http: //en.wikipedia.org/wiki/Same-origin_policy)。该请求将被发送,并且浏览器将接收到数据,但因为域不匹配,数据将被阻止通过JavaScript进行访问。这就是为什么你可以看到响应数据。就像我所说的那样,你无法在客户端上改变这种行为。如果您需要获取数据,最好使用本地服务器端代理为您提出请求,然后将数据从那里返回给您自己的JS。 –