我正在开发一个客户端应用程序,该应用程序调用后端以主要使用$.ajax
收集一些信息。最近,在后端的前面,他们添加了一个代理(我无权访问),将所有HTTP状态代码更改为200
,并在出现错误时添加类似ORIGINAL_HTTP_STATUS_ERROR=500
的HTTP标头。
我的所有前端代码都在使用之前处理好错误处理,但是由于此更改它显然已停止正常工作,并且它无法再处理错误。
我已经尝试了关于ajaxSetup,覆盖成功方法等的一切,但没有真正起作用。这是一个很棒的应用,$.ajax().success
,$.ajax().error
,$.when().fail
,$.when().done
等来自许多不同的地方,所以我需要一个独特的地方来处理这个问题。最后,我尝试做的是改变jQuery用来考虑错误的逻辑。
This是jQuery检测响应是否成功的方式:
function done( status, nativeStatusText, responses, headers ) {
...
// Determine if successful
isSuccess = status >= 200 && status < 300 || status === 304;
// If successful, handle type chaining
if ( isSuccess )
...
我看到的唯一方法是覆盖声明的函数,因为我基本上需要覆盖(真正复制粘贴)整个$ .ajax方法。
有没有其他方法可以告诉jQuery什么是错误考虑?
谢谢!