簡體   English   中英

如何使用Javascript / Ajax但不使用jQuery獲取遠程URL的狀態代碼?

[英]How to get status code of remote url using Javascript/Ajax but NOT using jQuery?

我試圖檢查網址是否可以訪問,或者不使用jQuery而不使用jQuery或從該網址加載圖片的方法。 如果我能獲得該網址的狀態碼,那將是很好的,因為我只關心狀態碼為200。

我已經嘗試過XMLHttpRequest,但是我了解到它不支持跨域調用。

請幫忙。

謝謝。

沒有XMLHttpRequest,就不可能直接在JavaScript中獲取狀態代碼。 如前所述,雖然我知道有兩種可能的跨域方法(不需要代理服務器),但這通常僅是同一域:

  1. 某些願意玩的客戶端和服務器可以使用跨域資源共享,並且;
  2. 也有基於Flash的“ XHR”解決方案

另一方面,如果只關心可以加載映像 (可能根本不是200!),則可以使用Image元素和onload事件來查找。 如果onload事件在一定時間內沒有觸發,則可以斷定請求超時或失敗(4xx / 5xx)。 但是,在302等情況下,這將返回假陽性。

只需確保瀏覽器實際上嘗試加載圖像即可:一些更聰明的瀏覽器將不會加載隱藏圖像,或者據我所知。

快樂的編碼。

我不確定這是如何“跨瀏覽器”的:

<script src="http://www.google.com" onerror="alert('error')"></script> <!-- Is Fine -->
<script src="http://www.notrealnotrealzz.com" onerror="alert('error')"></script> <!-- Alerts Error -->

這顯然是黑客,但希望能有所幫助。

更動態的版本:

var el = document.createElement('script');
el.onerror = errorFunction;
el.src = url;
document.body.appendChild(el);

使用服務器端語言創建服務器端腳本,使該腳本返回狀態代碼。 此“代理”腳本將為您請求URL,因此無需進行跨域請求。

有關Python響應代碼腳本的示例,請參見此處: 從URL獲取HTTP響應代碼的最佳方法是什么?

希望有幫助,-Sunjay03

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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