Ajax调用给出响应,但是成功,完成和错误函数没有触发

时间:2014-02-27 18:31:50

标签: javascript jquery ajax json

我正在尝试通过ajax调用从数据库获取sql结果并在另一个php页面中显示。我的ajax电话是:

function newfunc(){
start += 10;
var params = parseURLParams(document.URL);
var datastring = "nextStart="+start+"&subID="+params["hidSubjectID"]+"&topic="+params["hidTopic"];
if(datastring!=''){
$.ajax({
        type:"POST",
        url:"ajax/getTopicQuestions.php",
        data: datastring,
        dataType: "json",
        success: function(json){ console.log("success"+json[0].question); alert("success");},
        complete: alert("complete"),
        error: alert("error")
    });
}

}

我的json回复格式如下:

[ { "qno": "3", "qbit": "(i)", "qinstruction": "", "question": "This is a question", "mark": "5", "examname": "B.Tech. Sixth Semester Examination", "examyear": "2011", "questionid": "368", "examtype": "BPUT Univ Exam", "topic": "HTML" },...

此函数返回有效的json响应(如Chrome DevTools中所示)。但是没有alert()被执行。但每次控制台显示successThis is a question时。我已经扫描了几个问题,但似乎没有解决这个问题。我想显示那个json中的所有数据。非常感谢任何建议。

3 个答案:

答案 0 :(得分:2)

这不是你编码回调的方式

   complete: alert("complete"),
    error: alert("error")

需要

   complete: function() { alert("complete") },
    error: function() { alert("error") }

答案 1 :(得分:1)

试试这个,添加function(){}

 complete: function(){ alert("complete");},
 error: function(){ alert("error");}

而不是

 complete: alert("complete"),
  error: alert("error")

答案 2 :(得分:1)

回调应该是一个函数。所以你需要在回调完成和错误中调用一个函数,或者像在成功回调中那样使用匿名函数。

 complete: function(){ alert("complete");},
 error: function(){ alert("error");}

api Doc:https://api.jquery.com/jQuery.ajax/