我正在尝试通过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中的所有数据。非常感谢任何建议。
答案 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");}