3

如何使用 JavaScript 获取另一个站点的 HTTP 状态码?

4

4 回答 4

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);
于 2010-07-21T11:45:30.557 回答
6

您必须使用 XMLHTTPRequest 来获取 HTTP 状态代码。这可以通过向服务器发出 HEAD 请求以获取所需的 url 来完成。创建一个 XMLHTTPRequest 对象 - xhr,然后执行以下操作

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

有关更多详细信息,请参见此处

于 2010-07-21T13:12:02.297 回答
2

由于相同的来源策略,您不能直接使用 AJAX 执行此操作。

您必须在服务器上设置代理服务,然后使用您要检查的地址对其进行 ajax 调用。从您的服务器代理中,您可以使用 cURL 或您喜欢的任何工具来检查状态代码并将其返回给客户端。

于 2010-07-21T13:28:58.847 回答
0

我假设带有 JQuery 的 JavaScript 可以大大简化 AJAX 请求,就像这样。

$.ajax({
  url: 'url',
  type: 'GET',
  complete: function(transport) {
      doing whatever..
  }
});
于 2010-07-21T11:39:25.673 回答