簡體   English   中英

獲取沒有CORS標頭的XHR請求的狀態代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM