1
當我嘗試爲網址使用Ajax時,出現Access-Control-Allow-Origin錯誤(沒有意外,因爲我還沒有跨域策略文件)。令我驚訝的是獲取正確的錯誤信息是。這裏是我的JS:如何從jqXHR對象獲取Access-Control-Allow-Origin錯誤?
$.ajax({
url: e.target.href,
dataType: 'html'
}).always(function (xhr, textStatus, errorThrown) {
console.log("xhr.status: " + xhr.status);
console.log("xhr.statusText: " + xhr.statusText);
console.log("xhr.readyState: " + xhr.readyState);
console.log("xhr.responseText: " + xhr.responseText);
console.log("xhr.responseXML: " + xhr.responseXML);
console.log("textStatus: " + textStatus);
console.log("errorThrown: " + errorThrown);
console.log("xhr.redirect: " + xhr.redirect);
$('#output').html(xhr.responseText);
});
,這裏是錯誤
XMLHttpRequest cannot load {url}. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '{url}' is therefore not allowed access.
這裏的控制檯日誌是我寫的,你可以看到有沒有正確的錯誤消息的提控制檯日誌。
xhr.status: 0
xhr.statusText: error
xhr.readyState: 0
xhr.responseText:
xhr.responseXML: undefined
textStatus: error
errorThrown:
xhr.redirect: undefined
如何獲取正確的錯誤文本?
測試和糾正的jsfiddle - http://jsfiddle.net/ hMupL/5/ –
狀態「已拒絕」並不比默認消息「錯誤」好得多,是否真的沒有辦法獲得更好的錯誤信息?作爲後續,「拒絕」始終與「否」Access-Control-Allow-Origin標題存在相同。「? – devzero
我不確定你可以得到'Access-Control-Allow-Origin'變量,因爲響應和響應頭在瀏覽器運行時被阻塞,控制檯日誌消息從它發出,因此永遠不會傳遞給JavaScript引擎。 – davidonet