[英]Get the status code of an XHR request with no CORS header
我正在嘗試檢查網頁上是否存在網頁。 我不需要內容,只是想知道頁面是否存在。
try {
jQuery.ajax(link, {
statusCode: {
404: function() {
jQuery("#moreInfo").html("not working");
},
200: function() {
jQuery("#moreInfo").html("<a href='" + link + "'>Technical Details</a>");
}
}
});
} catch (e) {
console.log(e);
}
我發現瀏覽器確實知道它是否收到404響應,這就是我所需要知道的。
我嘗試在控制台中運行請求,發現以下內容:
Internet Explorer:在200響應中,IE 11給出錯誤代碼0x2ef1
,而在404上則顯示0x80070005
Chrome:404響應將以下內容添加到默認的no CORS標頭響應中: The response had HTTP status code 404
。
Firefox:如果啟用了網絡消息,則將狀態代碼記錄到控制台- [HTTP/1.1 404 NOT FOUND 6ms]
有沒有辦法在我的腳本中獲取此信息並檢查請求是否成功? 還是有更好的方法來確定頁面是否存在客戶端?
有沒有辦法在我的腳本中獲取此信息並檢查請求是否成功?
沒有客戶端代碼。
瀏覽器知道並且很高興告訴瀏覽器用戶,但是相同的原始策略禁止它告訴您的JavaScript。
您必須使用服務器端代碼來執行此操作。
如果您嘗試僅檢查頁面是否存在,或者是否低於我們在此使用的方式。
function isValidURL(link) {
var encodedURL = encodeURIComponent(link);
var isValid = false;
$.ajax({
url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22" + encodedURL + "%22&format=json",
type: "get",
async: false,
dataType: "json",
success: function(data) {
isValid = data.query.results != null;
},
error: function(){
isValid = false;
}
});
return isValid;
}
如果存在,則函數將返回true,否則為false
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.