javascript - $http 请求成功但出错

标签 javascript angularjs ajax

我有以下简单代码:

$http(request)
    .success(function(data){                                            
                ...
            })
    .error(function(data){
                ...
            });

我遇到的一个问题是,当响应导致错误时,我在 JSON 响应中返回了一个错误,我可以通过 data.error 看到它,但是我目前的工作方式 data.error 实际上是成功,而不是错误。

处理此问题的最佳方法是什么?会不会很简单:

if (data.error){ ....

最佳答案

根据Angular docs :

A response status code between 200 and 299 is considered a success status and will result in the success callback being called. Note that if the response is a redirect, XMLHttpRequest will transparently follow it, meaning that the error callback will not be called for such responses.

因此,如果您在 JSON 中返回 data.error,但返回的响应带有 HTTP 状态代码 200,则您的 .error 处理程序不会接到电话。

然后回答您的问题,是的 - 执行类似 if (data.error) {... } 的操作应该可以解决问题。

关于javascript - $http 请求成功但出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36040477/

相关文章:

javascript - 基于哪个条件打破了 Javascript 中的 while 循环,最干净的分支方法是什么?

javascript - 关于 'the angular way' 的不安全感

AngularJS 指令绑定(bind)具有多个参数的函数

ajax - jQuery AJAX 响应始终不返回任何内容

javascript - 类型错误 : 'append' called on an object that does not implement interface FormData

javascript - 使用 $emit 刷新父数据时,AngularJS 子 Controller 数据未加载到 UI 上

javascript - 为什么多个背景图像不适用于 IE?

javascript - 为什么 mathjax 不能在包含 jquery html 的 switch case 中工作

javascript - 将 $set 与 GoAngular 一起使用时页面未更新

javascript - 如何使用ajax jquery asp.net mvc访问和显示数据库中的数据