【问题标题】:AngularJS $httpProvider ErrorAngularJS $httpProvider 错误
【发布时间】:2015-07-05 09:51:33
【问题描述】:

我正在用 AngularJS 编写一个带有 Django API 端点的 Web 应用程序。当我想对此端点执行 JSON 调用时,我想捕获可能的错误(例如 404 not found 错误)。为此,我正在使用 $httpProvider。

但是当我在控制台中运行我的应用程序(使用 gulp)时,浏览器会显示此错误“错误:e 未定义”

这是我的工厂代码(基本代码,以后会扩展):

angular.module('qrWebapp').factory('errorInterceptor', function(){
  var errorInterceptor = {
        response: function() {
            console.log('hallo');
        }
  };
  return errorInterceptor;
});

我在配置区域初始化它:

angular.module('qrWebapp', ['ngResource', 'ui.router', 'ui.bootstrap'])
.config(function ($stateProvider, $urlRouterProvider, $httpProvider){
    $httpProvider.interceptors.push('errorInterceptor');
});

我做错了什么?

【问题讨论】:

  • 你在缩小你的 JavaScript 吗?
  • 我遗漏了一些代码,在 $stateProvider 的帮助下定义了不同的状态。但我不明白你缩小 JavaScript 是什么意思,抱歉......
  • 缩小 JavaScript 意味着所有的空格都被删除,并且在可能的情况下变量名被缩短(像'e'这样的名字)。去谷歌上查询。这是 Angular 中的一个经典问题,您需要使用不同的注入语法(Google 也是,抱歉我在打电话)
  • 浏览器是否在控制台中显示hello
  • 你能不能用 angular.js 代替 angular.min.js,这样我们就能在出错的地方得到正确的错误

标签: angularjs gulp angularjs-service angularjs-factory angularjs-http


【解决方案1】:

乍一看,我在您的代码中找不到任何错误。 但是拦截器假定接收返回值,因此如果您不返回任何值作为示例代码,则可能会导致意外问题。

试试下面的代码。

angular.module('qrWebapp').factory('errorInterceptor', function($q){
  var errorInterceptor = {
        response: function(res) {
            console.log(res.status);
            if (res.status !== 200){
                // Normally show some error messages. One of the most simple way is calling alert function.
                console.log(res.status, res.data);
            }
            return $q.reject(res);
        }
  };
  return errorInterceptor;
});

希望对你有帮助。

【讨论】:

  • 它消除了错误,但目前,当我加载页面时,它只显示一个白屏。但是控制台一直说“你好”
  • 还有其他方法可以从 $http.get() 调用中捕获错误吗?我知道您可以使用 $http 服务中的错误功能,但这对我来说并没有成功...
  • 我很高兴听到错误被删除。现在您已经在响应函数中发现了错误。我编辑了我的答案。
  • 控制台只说“你好”,第二个console.log()没有输出
  • 请检查res.status,不要忘记重新加载更新的javascript代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-28
  • 2016-06-21
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多