ajaxsetup错误处理程序是否适用于POST?

时间:2017-03-26 22:24:33

标签: javascript jquery ajax

这听起来像一个奇怪的问题,但在POST时出现Ajax错误时使用ajaxsetup时会应用全局错误处理程序吗?

我有一些地方,我正在尝试处理Ajax错误,但没有一个点击错误处理程序。碰到错误处理程序的地方都是GET,而不是所有地方的地方都是POST,我也没有看到他们为什么不能点击它的任何其他原因。

如果它仅适用于GET,那将是奇怪的,除了jQuery文档中没有提到这种限制。

2 个答案:

答案 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." );
        }
    }
});