0

常に「読み込み中...」と言い続け、data.php の内容を表示しないのはなぜですか?

xmlhttp = new XMLHttpRequest();             
function getdata () {
    xmlhttp.onreadystatechange = function () {
        if(xmlhttp.readyState = 4 && xmlhttp.status == 200) {
            document.getElementById('data').innerHTML = xmlhttp.responseText;
        } 
        else {
            document.getElementById('data').innerHTML = "loading...";
        }
    }
    xmlhttp.open("GET", "data.php", true);
    xmlhttp.send();
}
4

2 に答える 2

0

常に「読み込み中」と表示される理由はわかりません...しかし、比較演算子が行にありませんでした:

if(xmlhttp.readyState = 4 && xmlhttp.status == 200)

でなければなりません

if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
于 2013-09-19T13:47:23.127 に答える
0

ステータスが 200 でよろしいですか?

if(xmlhttp.readyState == 4 ) { //<-- typo 
    if(xmlhttp.status == 200) {
            document.getElementById('data').innerHTML = xmlhttp.responseText;
    } else {
            document.getElementById('data').innerHTML = xmlhttp.status + ": " + xmlhttp.statusText;
    } 
} else {
    document.getElementById('data').innerHTML = "loading...";
}

ステータスがゼロだと言いました。つまり、Ajax リクエストを行う関数を呼び出したクリック イベント/フォーム送信をキャンセルしていないということです。インライン イベント ハンドラを使用していると思われるため、次のようになります。

<a href="foo.gif" onclick="getdata(); return false;">
<form onsubmit="getdata(); return false;">
于 2013-09-19T13:52:22.000 に答える