首先我知道很多問題都被問到了這個問題,但我真的試圖找出問題所在,但沒有什麼幫助我。 我正在使用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。 –