0

単一行をエコーする単純な php ファイルを要求しています。AJAX を使用していますが、Linux のローカルホスト サーバーから HTTP 501 応答を受け取ります。私の質問は、この種のエラーの原因は何ですか?

JavaScript:

var request = new XMLHttpRequest();

request.onreadystatechange = function () {
    //console.log(request.responseText);
    if (request.readyState == 4 && request.status == 200) {
        console.log(0);
    } else if (request.status == 501) {
        console.log(request.responseText);
    }
}
request.open('test.php', 'GET', true);
request.send();

test.php:

<?php echo 'this is a test'; ?>
4

1 に答える 1

0

知る限り、以前のサーバーの状態を検出することはできませんreadyState4そうであればDONE、サーバーのステータスを確認できます。

readyStateしたがって、チェックする前に最初にチェックする必要がありますstatus

if (req.readyState === 4) {
    // 200 is not enough to detect successful requests
    // cos there are many success status codes
    if (req.status === 200) {
        // every thing ok
    } else {
        // something is wrong with server?
    }
}

ここで HTTP ステータス コードを見てください: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

多分これはあなたに役立つかもしれません: https://github.com/qeremy/mii/blob/master/mii.ajax.js#L248

于 2013-01-22T04:17:03.470 に答える