【发布时间】:2013-12-04 11:52:51
【问题描述】:
我发现了这个主题 (How to get response status code from jQuery.ajax?),它解释了如何获取返回状态,但我使用的是 $.post,这使它有点不同。
我有以下代码:
$(function() {
$('#update_marker').submit( function(e) {
e.preventDefault();
$.post($("#update_marker").attr("action"), $("#update_marker").serialize(), function(data) {
if( $.trim(data).indexOf('<')==0 ) {
new Messi( lang['dist_general_error'], {title: 'Ops...', titleClass: 'anim error', buttons: [{id: 0, label: 'Fechar', val: 'X'}]});
} else {
var json = $.parseJSON( data );
if( json.status=="success" ) {
new Messi( json.msg );
} else {
new Messi( json.msg, {title: 'Ops..', titleClass: 'anim error', buttons: [{id: 0, label: 'Fechar', val: 'X'}]});
}
}
});
return false;
});
});
所以我想我会将$.post 调用更改为类似
$.post($("#update_marker").attr("action"), $("#update_marker").serialize(), function(data, textStatus, jqXHR) {
如果我得到 jqXHR.status 代码 = 200,它确实有效。但是当状态 = 500 时,我什么也得不到。
我正在尝试用最少的代码更改来实现这一点,因为我有很多像这样的函数,我需要能够捕获 500 个代码并处理所有代码。
有什么想法吗?
【问题讨论】:
-
请注意,您还可以在全球范围内收听 Ajax 事件,api.jquery.com/Ajax_Events