始终触发JQuery.ajax()成功(即使服务器返回错误代码)
我有一个表单正在被JQuery序列化,并通过.ajax发布到url 问题是不管服务器是否返回错误代码,总是调用“success:”函数 事实上,甚至在服务器响应之前就触发了success。我已经在为请求提供服务的服务器方法上放置了一个断点—甚至在该方法完成之前,success也会触发。如果服务器返回错误代码,例如状态代码500,JQuery将调用成功和错误事件 知道发生了什么事吗?以下是我的jquery代码:始终触发JQuery.ajax()成功(即使服务器返回错误代码),jquery,ajax,Jquery,Ajax,我有一个表单正在被JQuery序列化,并通过.ajax发布到url 问题是不管服务器是否返回错误代码,总是调用“success:”函数 事实上,甚至在服务器响应之前就触发了success。我已经在为请求提供服务的服务器方法上放置了一个断点—甚至在该方法完成之前,success也会触发。如果服务器返回错误代码,例如状态代码500,JQuery将调用成功和错误事件 知道发生了什么事吗?以下是我的jquery代码: $("#a-dialog").dialog({ autoOpen: false
$("#a-dialog").dialog({
autoOpen: false,
height: 300,
width: 400,
modal: true,
buttons: {
"Submit": function() {
$.ajax({
type: 'POST',
url: theURL,
data: $("#a-dialog-form").serialize(),
success: alert('ok!') // THIS IS ALWAYS CALLED (IMMEDIATELY)
});
},
},
});
更新:
这是我一个愚蠢的错误!感谢blue112快速指出它:这很正常,您必须将它作为回调传递,例如
$.ajax({
type: 'POST',
url: theURL,
data: $("#a-dialog-form").serialize(),
success: function(){alert('ok!');} // The function will be called upon success.
});
您需要通过一个指向函数的指针来提供成功,或者通常通过传递函数定义来提供成功 你要做的就是做这样的事情:
"Submit": function() {
$.ajax({
type: 'POST',
url: theURL,
data: $("#a-dialog-form").serialize(),
success: function (data) {
alert('ok!') // THIS IS ALWAYS CALLED (IMMEDIATELY)
}
});
},
},
在您的情况下,会立即调用警报,因此即使ajax请求根本没有被触发,您也会看到警报消息。+1-OPs代码正在分配alertok的返回值!为了成功的财产