2014-02-27 36 views
0

我想通过ajax调用从数据库获取sql结果并在另一个php页面中显示。我的Ajax调用: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中的所有数据。任何意见是极大的赞赏。

回答

2

,是不是你如何编写回调

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

需求是

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

试试这个,加function(){}

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

,而不是

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

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

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

API文档:https://api.jquery.com/jQuery.ajax/

相关问题