由于某种原因,AJAX请求无法获得结果

时间:2014-10-16 20:09:09

标签: javascript jquery ajax

                var id = -1;

                function addMSG(dataz) {
                    console.log(dataz);
                }

                function waitForMsg() {
                    console.log("start waitmsg");
                    $.ajax({
                        url: "chatxml2.php",
                        type: "POST",
                        async: true,
                        cache: false,
                        timeout: 1000,
                        data: {id: id, chat: '.filter_input(INPUT_GET,"id").'},
                        datatype: "xml",


                        done: function(dataz) {
                            //addmsg(nera reikia);
                            addMSG(dataz);
                            console.log("success");
                        },

                        fail: function(XMLHttpRequest, textStatus, errorThrown){
                            //addmsg("error", textStatus + " (" + errorThrown + ")");
                            waitForMsg(); 
                            console.log("fail");
                        }
                    });
                }

                $(document).ready(function(){
                    console.log(id);
                    waitForMsg(); 
                });

出于某种原因,这并没有得到任何结果我不确定是否使用"数据:"对。 我试着寻找一段时间,但似乎我无法解决这个问题,我在js上非常糟糕。

PHP脚本100%正确地工作,用html脚本帖子尝试过。

2 个答案:

答案 0 :(得分:1)

你的语法错了。 donefail应分别为successerror

所以它应该是:

$.ajax({
    url: "chatxml2.php",
    type: "POST",
    async: true,
    cache: false,
    timeout: 1000,
    data: {id: id, chat: '.filter_input(INPUT_GET,"id").'},
    datatype: "xml",
    success: function(dataz) {
        //addmsg(nera reikia);
        addMSG(dataz);
        console.log("success");
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){
        //addmsg("error", textStatus + " (" + errorThrown + ")");
        console.log("fail");
    }
});

如果您想使用Deferred语法,那么它将是:

$.ajax({
    url: "chatxml2.php",
    type: "POST",
    async: true,
    cache: false,
    timeout: 1000,
    data: {id: id, chat: '.filter_input(INPUT_GET,"id").'},
    datatype: "xml"
}).done(function() {
    addMSG(dataz);
    console.log("success");
}).fail(function() {
    console.log("fail");
});

答案 1 :(得分:0)

替换成功完成并因错误而失败

阅读有关可用已完成和失败的延迟对象。