2010-07-21 68 views
3

如何使用JavaScript獲取其他站點的HTTP狀態碼?如何從JavaScript獲取HTTP狀態

+1

你如何獲取內容?一些代碼會有所幫助。 – 2010-07-21 11:35:33

+2

你不能直接反正(由於同域政策)。您可能必須使用代理。 – James 2010-07-21 12:45:52

+0

http://stackoverflow.com/questions/837064/how-to-detect-http-status-from-javascript也許這可以幫助你...如果你有同樣的問題..否則,請詳細說明。 – PHP 2010-07-21 11:42:42

回答

1

我認爲JavaScript和JQuery一樣,它簡化了AJAX請求,就像這樣。

$.ajax({ 
    url: 'url', 
    type: 'GET', 
    complete: function(transport) { 
     doing whatever.. 
    } 
}); 
7

嘗試下面的一段JavaScript代碼:

function getReq() { 
    var req = false; 
    if(window.XMLHttpRequest) { 
     try { 
      req = new XMLHttpRequest(); 
     } catch(e) { 
      req = false; 
     } 
    } else if(window.ActiveXObject) { 
     try { 
      req = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch(e) { 
      req = false; 
     } 
    } 
    if (! req) { 
     alert("Your browser does not support XMLHttpRequest."); 
    } 
    return req; 
} 

    var req = getReq(); 

     try { 
     req.open("GET", 'http://www.example.com', false); 
     req.send(""); 
    } catch (e) { 
     success = false; 
     error_msg = "Error: " + e; 
    } 

alert(req.status); 
4

你將不得不使用XMLHttpRequest用於獲取HTTP狀態代碼。 這可以通過向服務器發送HEAD請求獲取所需的url來完成。 創建XMLHttpRequest對象 - XHR,然後執行以下操作

xhr.open("HEAD", <url>,true); 
xhr.onreadystatechange=function() { 
    alert("HTTP Status Code:"+xhr.status) 
} 
xhr.send(null); 

詳情請參閱here

2

由於具有相同的原產地策略,您無法直接通過AJAX執行此操作。

您必須在您的服務器上設置代理服務,然後使用您要檢查的地址對該服務進行ajax調用。從你的服務器代理你可以使用cURL或你喜歡的任何工具來檢查狀態碼並將其返回給客戶端。