请教关于一下jquery中的ajax中的success和complete的问题

各位前辈大家好~

这段时间在家闲着没事,学习jquery ajax看到了从来没用过的complete

1 我是不是把这个complete理解成为try catch finally中的finally?
也就是说不管这次请求失败或者成功,最终都会进入这个complete?

2 服务器的状态码有 1XX~5XX,我这边试验了下
1)4XX 5XX会进入ajax error
2)2XX会进入ajax success
3)3XX比较特别是
302 303是重定向,XMLHttpRequest响应的是跳转后的地址的状态码,也就是说跳转地址如果响应200,那么会进入ajax success

问题就是304,304是来自缓存和跳转一毛钱关系都木有,当前项目也怎么都弄不出这个这个状态码,请问这个状态码会进入ajax success么?

查阅资料的时候发现了这个问题
https://github.com/axios/axio...

理论山讲,如果是浏览器问题,那么用jquery应该也能复现出来,很可惜这个问题我也没复现出来,有可能是新版的edge已经修正了吧

请问遇到过这个类似问题的前辈,这个如果用jquery 从post变成get ajax请求的话,会不会进入ajax success?

4)1XX 会进入ajax error还是ajax success?

综上所述,ajax error success 是不是已经覆盖了所有的情况,也就是说对于一个请求,error success必然会进入一个,那么complete存在的意义是什么?

感谢各位前辈看我絮絮叨叨哦说到这里,请帮我解惑,先行谢过了

阅读 2.7k
1 个回答

1、对
3、304 是对资源的缓存,由资源返回 header 头告诉这个资源可以缓存,一般出现在静态文件上,如果需要,请后台控制。
4、1xx 属于建立连接阶段,不会执行任何回调操作。

complete 最常见的应用就是 在这里重置资源或者关闭加载框,因为如果分别在 success 和 error 就会造成代码冗余。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题