如何获得正确的$ http错误代码,而不是-1?

时间:2016-11-23 16:03:19

标签: angularjs https

我使用$http从服务器检索数据。万一发生错误,所有statusCode = -1。我无法在客户端处理正确的errorCode。我无权更新服务器代码。

$http(options).then(function (response) {
                    if (response.status === 200) {
                        resolve(response.data);
                    } else {
                        exceptionHandler(response);
                    }
                }, function (error) {
                    exceptionHandler(error);
                });

console.log放在exceptionHandler函数上。

请帮助我获取正确的错误代码。非常感谢。

Error 404

Error 403

Error 500

1 个答案:

答案 0 :(得分:2)

在您显示的回复中,404错误可用error.status但其他两个回复在执行预检OPTIONS请求时被浏览器拒绝访问。

在这种情况下,浏览器返回状态-1以指示请求已中止。您的请求没有HTTP状态代码,因为它从未发送过。控制台日志中显示的状态500不可用于任何JavaScript代码。

您应该处理状态-1,表示没有收到来自服务器的响应,因为它从未发送过(这种情况),或者因为它已被发送但超时。