jquery ajax成功功能不执行
我有一个模式对话框窗体,提交数据到表。我想给用户提交关于提交成功/失败的一些反馈,但成功处理程序不会解雇。jquery ajax成功功能不执行
我的代码是
$.ajax({
type: "POST",
url: "includes/phpscripts.php?action=submitWiki",
data: {"name": location, "location": locationName, "text": locationText, "user": userId},
beforeSend: function(x){
if (x && x.overrideMimeType){
x.overrideMimeType("application/json;charset=UTF-8");
}
},
async: false
}).done(function(data){
if (data == "failure"){
$("#submissionFailure").dialog("open");
} else {
$("#submissionSuccess").dialog("open");
var count= 3;
var id= setInterval(function(){
count--;
if (count == 0)
$("#submissionSuccess").dialog("close");
}, 1000);
}
});
另一个版本已经内done
的的if/else块定义为
success: function(data){
if (data == "failure"){
$("#submissionFailure").dialog("open");
} else {
$("#submissionSuccess").dialog("open");
var count= 3;
var id= setInterval(function(){
count--;
if (count == 0)
$("#submissionSuccess").dialog("close");
}, 1000);
}
}
在Firebug中,我可以清楚地看到从请求返回的是success
由于echo语句,但成功函数正在跳过。我已经在done
行上直接设置了断点,并且所有内容都被跳过了。
此外,帖子正在被记录到数据库中。
丢失的“数据类型”,默认为HTML /字符串或XML也许我不记得哪一个把我的头顶部,但让说与JSON你的工作,如果数据类型:未设置成JSON它赢得不会将您的后端反馈解释为有效,并且基本上会忽略它。所以type: "POST"
下把dataType:"json"
像克里斯^告诉你,添加数据类型,然后改变这一行
data: {"name": location, "location": locationName, "text": locationText, "user": userId}
为此
data: {name: "location", location: "locationName", text: "locationText", user: "userId"}
的报价应该在第二个参数,除非他们是变量。第一个参数可以像这样留下。
的物体上使用周围的按键报价不会影响任何东西,无论哪种方式是有效的。 – 2012-08-13 08:19:29
恩,谢谢。不知道。 – 2012-08-13 20:00:54
“但让我们说你使用JSON” - 为什么?问题中没有任何内容表明它们是。 – 2012-08-12 20:27:16
以及您的权利,比'x.overrideMimeType( “应用/ JSON的;字符集= UTF-8”);其他'行... – chris 2012-08-12 21:39:07
啊,你是正确的 - 不知道我怎么错过了。 – 2012-08-13 08:18:40