2017-03-26 53 views
0

这听起来像一个奇怪的问题,但是当使用ajaxsetup时应用全局错误处理程序在POST时出现Ajax错误时会受到影响吗?ajaxsetup错误处理程序是否适用于POST?

我有几个地方,我正在尝试处理Ajax错误,并且他们都没有命中错误处理程序。碰到错误处理程序的地方都是GET,而不是所有POST的地方,并且我没有看到为什么他们不会触及它的任何其他原因。

如果它仅适用于GET,那么在jQuery文档中看不到任何提及此限制的内容会很奇怪。

回答

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."); 
     } 
    } 
}); 
相关问题