对httpstatusready = 4的Ajax调用不执行

时间:2013-04-25 14:04:34

标签: javascript jquery ajax

我正在使用ajax - 工作正常 - 传递值。但是当我添加HTTP代码时,没有任何操作。使用简单的HTTP根据div显示不同的http.readystatus值。这是正确的格式吗?如果没有,那是什么?

if (colorToCheck == gup("Player1")) {
    document.getElementById('win').innerHTML = player1 + " wins";
    redScore += 1;

    //Browser Support Code
    var xmlhttp;
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlhttp.readyState == 3 && xmlhttp.status == 200) {
        document.getElementById("save").innerHTML = "saving";
    } else if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        //ajax call
        var dataString = 'winner=' + player1 + '&player1=' + player1 + '&player2=' + player2 + '&matchNum=' + matchNum;
        $.ajax({
            type: "POST",
            url: "red.php",
            data:dataString,
            cache: false,
            success: function(response) {
                $('.result13').html(response);    
            }
        });
    }
}

任何帮助都将受到高度赞赏!提前谢谢。

1 个答案:

答案 0 :(得分:2)

Vanilla JS AJAX调用的结构是:

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET","path/to/file.php"); // or "POST" if needed
xmlhttp.onreadystatechange = function() {
    if( this.readyState == 3) document.getElementById('save').innerHTML = "saving";
    if( this.readyState == 4) {
        if( this.status != 200) alert("ERROR: Server returned "+this.status+" "+this.statusText);
        else {
            // do something
            alert(this.responseText);
        }
    }
};
xmlhttp.send(data); // data is whatever POST data you want. Leave out if using GET.