这听起来像一个奇怪的问题,但是当使用ajaxsetup时应用全局错误处理程序在POST时出现Ajax错误时会受到影响吗?ajaxsetup错误处理程序是否适用于POST?
我有几个地方,我正在尝试处理Ajax错误,并且他们都没有命中错误处理程序。碰到错误处理程序的地方都是GET,而不是所有POST的地方,并且我没有看到为什么他们不会触及它的任何其他原因。
如果它仅适用于GET,那么在jQuery文档中看不到任何提及此限制的内容会很奇怪。
这听起来像一个奇怪的问题,但是当使用ajaxsetup时应用全局错误处理程序在POST时出现Ajax错误时会受到影响吗?ajaxsetup错误处理程序是否适用于POST?
我有几个地方,我正在尝试处理Ajax错误,并且他们都没有命中错误处理程序。碰到错误处理程序的地方都是GET,而不是所有POST的地方,并且我没有看到为什么他们不会触及它的任何其他原因。
如果它仅适用于GET,那么在jQuery文档中看不到任何提及此限制的内容会很奇怪。
不,它适用于GET和POST。看看这个文档页面(jQuery)http://api.jquery.com/jquery.ajax/,它表明它应该工作,不管请求类型如何。
你还没有指定你试图捕捉什么错误以及你在捕捉什么,但是我会认为它们不是标准的连接错误。
在此基础上,当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.");
}
}
});