用javascript和AJAX实现一个Shoutbox

时间:2013-05-01 19:19:10

标签: javascript ajax

我已经看了很多演示和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,但如果需要一个snippit,我也可以把它放在这里。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

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

P.S。这应该是评论,但我没有足够的评价来评论你的帖子