这听起来像一个奇怪的问题,但在POST时出现Ajax错误时使用ajaxsetup时会应用全局错误处理程序吗?
我有一些地方,我正在尝试处理Ajax错误,但没有一个点击错误处理程序。碰到错误处理程序的地方都是GET,而不是所有地方的地方都是POST,我也没有看到他们为什么不能点击它的任何其他原因。
如果它仅适用于GET,那将是奇怪的,除了jQuery文档中没有提到这种限制。
答案 0 :(得分:0)
不,它适用于GET和POST。查看此文档页面(jQuery)http://api.jquery.com/jquery.ajax/,它表明无论请求类型如何,它都应该有效。
答案 1 :(得分:0)
您尚未指定要捕获的错误以及捕获的错误,但我会认为它们不是标准连接错误。
在此基础上,当Ajax捕获到错误时,通常是传输/连接问题。
对于GET
请求,您可以:
等等,都试图进入服务器或等待响应。
然而,对于POST
而言,它更像是一场火灾而忘记了(它不是在等待回复)。所以你得到的错误就是
因为一旦完成POST,连接到服务器并提供其有效负载,就完成了工作。
如果您遇到问题,例如更新数据(来自无效的ID或类似内容),您需要发回一条带有状态代码的消息。
然后,您可以检查返回的状态代码并确定您希望如何处理它。 尝试从服务器发回不同的错误(或状态)代码并将其捕获到客户端:
$.ajax({
method: 'GET/POST',
data: '...',
dataType: 'json',
contentType: 'application/x-www-form-urlencoded, charset=UTF-8',
timeout: 5000,
beforeSend: myBeforeSendFunction,
success: mySuccessFunction,
error: myErrorFunction,
statusCode: {
500: function() {
alert( "Oops! Server error here." );
}
}
});