1

我看过大量的演示以及 AJAX 和 JavaScript 教程,但我似乎无法让这件事正常工作。这就是我所拥有的...

function createRequestObject() {
var ro = false;
if (window.XMLHttpRequest) {             // Mozilla, Safari, ...            
    ro = new XMLHttpRequest();
} else if (window.ActiveXObject) {       // IE                              
    try {
        ro = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            ro = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) { }
    }
}
return ro;
}


function ajaxrequest(){
var http = createRequestObject();
if(http) {
    var name = "Strassburg";
    var message = "Strike three you're out";
    http.open('post', '/server/shout.php');
    // needed in order for most servers to see POST data                    
    http.setRequestHeader('Content-Type',
                          'application/x-www-form-urlencoded');
    http.onreadystatechange = function() {
        if(http.readyState == 4){
            if(http.responseText.indexOf(':' != -1)) {
                var data = http.responseText.split(':')
                alert(data)
            }
        }
    };
    http.send('name=' + name + '&message=' + message);
}

}

现在我正在使用静态文本(名称和消息而不是使用用户输入的字段)来做这件事,但我只是收到一个空警报。如果 readyState 设置为 4,这意味着我相信 ajax 调用成功了吗?这server/shout.php是给我的,我不太了解 php,但如果需要其中的一个片段,我也可以把它放在这里。

4

2 回答 2

1

它的这一行 http.responseText.indexOf(':' != -1)

( ":" != -1 ) = true,所以 indexOf 在 responseText 中寻找 true

试试这个 http.responseText.indexOf(':') !== -1

于 2013-05-01T19:26:33.820 回答
1

readyState == 4 表示请求已完成,检查是否正常检查 http.status == 200

if (http.readyState == 4) {
 if(http.status == 200) {
   alert(http.responseText);
 }
}

PS这应该是评论,但我没有足够的评级来评论你的帖子

于 2013-05-01T19:28:23.137 回答