我想檢查一個URL是否可到達或不使用JavaScript而不使用jQuery或從該URL加載圖像的方法。如果我能得到那個URL的狀態代碼將會很好,因爲我關心的是狀態碼是200.如何使用Javascript/Ajax獲取遠程URL的狀態碼,但不使用jQuery?
我已經嘗試了XMLHttpRequest,但是我知道它不支持跨域調用。
請幫忙。
謝謝。
我想檢查一個URL是否可到達或不使用JavaScript而不使用jQuery或從該URL加載圖像的方法。如果我能得到那個URL的狀態代碼將會很好,因爲我關心的是狀態碼是200.如何使用Javascript/Ajax獲取遠程URL的狀態碼,但不使用jQuery?
我已經嘗試了XMLHttpRequest,但是我知道它不支持跨域調用。
請幫忙。
謝謝。
使用server side language創建服務器端腳本,讓此腳本返回狀態碼。這個「代理」腳本將爲您請求URL,以便不需要進行跨域請求。
對於Python的響應代碼腳本的例子,在這裏看到:What’s the best way to get an HTTP response code from a URL?
希望幫助, -Sunjay03
這是不可能直接將狀態代碼在JavaScript中沒有的XMLHttpRequest。正如指出的那樣,這通常是隻有同域雖然,有兩種可能的跨域方式(不需要代理服務器)這個我知道的:
在另一方面,如果所有的關心是圖像認爲它可以加載(這可能不是200了!),就可以發現這一點使用圖像元素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);
感謝您的答覆,Sunjay的問題是,我沒有訪問服務器的代碼。這對我來說「字面上」是外在的。例如,該網址可以是任何內容(甚至是http://www.google.com)。底線是我無法訪問服務器的代碼。 – Sunny
你不需要訪問服務器的代碼。我使用代理的方法可以完全避免這種情況。 –