jquery.$ajax发送请求返回值
jquery.$ajax 后台将失败原因放到response并返回http-code 500,前端有办法从error回调函数里面拿到json数据吗?之前像这种情况都是在成功回调里面处理的
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
jquery.$ajax 后台将失败原因放到response并返回http-code 500,前端有办法从error回调函数里面拿到json数据吗?之前像这种情况都是在成功回调里面处理的
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
可以,前提是后台在返回500的时候依然把数据返回了。可以$ajax的 error 回调中获取到数据。
但是:
按照约定,500不应该返回数据。
请参考http状态码
补充:
响应的状态码和数据后端都是可以违背约定自己写的
如图:
即便是500,在我的response中依然有数据
再更新
也可以获取到数据,但是不要这么写 X3!!!违背约定,这种代码都是垃圾代码。
不能。三个参数XMLHttpRequest 对象、错误信息、捕获的异常对象
erro的话我记得只有三个参数,XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象
首先你要理解,他为什么会走到error区间
走到error区间只有一个原因:恭喜你,你的服务器挂了。
得不到相应,所以进入了error区间。
只要得到了回应,都会进入success区间,success的意思是得到了服务器的响应
而不是得到了正确的http-code,那些都是后端去设置的而已。
==========================================
我被jQuery蒙蔽了双眼...跳过我的答案吧
不能,如果error都能取到数据,那还要请求成功干甚?你说呢?
你可以用ajaxsetup设置一下error的提示信息,如果ajax走error了那就是接口有问题,和success时根据状态码判断成功与否是两个概念。
比如接口返回数据里status == 200时成功取得数据,其他状态码会对应不同的原因,这是后台与前端的约定,说明接口是没问题的,可能是用户填写数据错误,可能是后台的逻辑有问题等等,但接口都是success的。
如果走了error,不管报500啊404啊还是什么的,都是接口问题。所以不要说实现不了了,单凭理论上也是不可能让你的需求实现的。