javascript - Angular.js $http 拦截 "net::ERR_CONNECTION_REFUSED"

标签 javascript angularjs http interceptor

我正在尝试使用 $http' 的拦截器为我的网站编写一个通用错误处理程序,但它们似乎无法执行我想执行的操作。

我在 'response''responseError' 上放置了拦截器,但是当服务器离线/不响应时它们永远不会被调用 (net::ERR_CONNECTION_REFUSED)。我明白为什么会这样了,没有响应拦截。

除了监听每个请求的 $httpPromiseerror 回调之外,我想知道是否有捕捉这些错误的通用方法。

最佳答案

您或许可以检查 ResponseError 的状态。当 API 离线时为 0(直到 Angular 1.3.18)或 -1(从 Angular 1.3.19 开始):

angular.module("services.interceptor", arguments).config(function($httpProvider) {
     $httpProvider.interceptors.push(function($q) {
        return {
          responseError: function(rejection) {
                if(rejection.status <= 0) {
                    window.location = "noresponse.html";
                    return;
                }
                return $q.reject(rejection);
            }
        };
    });
});

关于javascript - Angular.js $http 拦截 "net::ERR_CONNECTION_REFUSED",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23914893/

相关文章:

javascript - 进行选择下拉列表而不显示值

javascript - angular2 xhrfields withcredentials true

php - Codeigniter 查询无法获取错误 500

javascript - 如何将 GET api 写入 Node.js 中的现有文件中

javascript - 如何使用 jQuery 设置单个项目的回调

javascript - 序列化 Django 模型

mysql - 如何使用 ionic 框架连接sqlite和mysql数据库?

javascript - 清除文本输入并禁用按钮 onclick Angularjs

javascript - goBack 按钮在 Angular2 的 Safari 中不起作用

javascript - 如何在本地使用 GlobalSecondaryIndexes 在 DynamoDB 上创建表?