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

HTTPステータスコードを取得するには、XMLHTTPRequestを使用する必要があります。これは、必要なURLについてサーバーにHEADリクエストを行うことで実行できます。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

このように、AJAXリクエストを大幅に簡素化するJQueryを使用したJavaScriptを想定しています。

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