jquery.$ajax发送请求返回值

发布于 2022-09-05 19:35:56 字数 100 浏览 15 评论 0

jquery.$ajax 后台将失败原因放到response并返回http-code 500,前端有办法从error回调函数里面拿到json数据吗?之前像这种情况都是在成功回调里面处理的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

旧时模样 2022-09-12 19:35:56

可以,前提是后台在返回500的时候依然把数据返回了。可以$ajax的 error 回调中获取到数据。
但是:
按照约定,500不应该返回数据。
请参考http状态码

补充:
响应的状态码和数据后端都是可以违背约定自己写的
如图:

即便是500,在我的response中依然有数据
clipboard.png

clipboard.png

再更新

clipboard.png

也可以获取到数据,但是不要这么写 X3!!!违背约定,这种代码都是垃圾代码。

暮年 2022-09-12 19:35:56

不能。三个参数XMLHttpRequest 对象、错误信息、捕获的异常对象

筱武穆 2022-09-12 19:35:56

erro的话我记得只有三个参数,XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象

眼眸里的快感 2022-09-12 19:35:56

首先你要理解,他为什么会走到error区间
走到error区间只有一个原因:恭喜你,你的服务器挂了。
得不到相应,所以进入了error区间。
只要得到了回应,都会进入success区间,success的意思是得到了服务器的响应
而不是得到了正确的http-code,那些都是后端去设置的而已。

==========================================
我被jQuery蒙蔽了双眼...跳过我的答案吧

十雾 2022-09-12 19:35:56

不能,如果error都能取到数据,那还要请求成功干甚?你说呢?

审判长 2022-09-12 19:35:56

你可以用ajaxsetup设置一下error的提示信息,如果ajax走error了那就是接口有问题,和success时根据状态码判断成功与否是两个概念。
比如接口返回数据里status == 200时成功取得数据,其他状态码会对应不同的原因,这是后台与前端的约定,说明接口是没问题的,可能是用户填写数据错误,可能是后台的逻辑有问题等等,但接口都是success的。
如果走了error,不管报500啊404啊还是什么的,都是接口问题。所以不要说实现不了了,单凭理论上也是不可能让你的需求实现的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文