Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用angularjs拦截器时出错未捕获获取无法调用方法';推动';未定义的_Javascript_Angularjs_Frontend - Fatal编程技术网

Javascript 尝试使用angularjs拦截器时出错未捕获获取无法调用方法';推动';未定义的

Javascript 尝试使用angularjs拦截器时出错未捕获获取无法调用方法';推动';未定义的,javascript,angularjs,frontend,Javascript,Angularjs,Frontend,我使用的是Angularjs 1.2.0rc1。我一整天都在努力让角截击机工作。我已经把问题缩小到$httpProvider.interceptors.push似乎没有定义,我不知道为什么,其他一切都正常工作 以下是示例代码: services.factory('testInterceptor', function ($q) { return { 'response': function(response) { console.log(response); retur

我使用的是Angularjs 1.2.0rc1。我一整天都在努力让角截击机工作。我已经把问题缩小到$httpProvider.interceptors.push似乎没有定义,我不知道为什么,其他一切都正常工作

以下是示例代码:

services.factory('testInterceptor', function ($q) {
return {    
  'response': function(response) {
    console.log(response);
    return response || $q.when(response);
  },     
  'responseError': function(rejection) {
    console.log(rejection);
    return $q.reject(rejection);
  }
};
});
module.config
中,我有以下代码

$httpProvider.interceptors.push('testInterceptor');
如果我删除上面的代码,应用程序工作正常,但是如果它存在,我会在控制台上不断收到这个错误

未捕获的TypeError:无法从调用未定义的方法“push” 我的模块。”

myModule
是模块的名称

请注意,根据我的调查,“$httpProvider.interceptors”似乎没有定义,我不知道为什么,任何见解都会有所帮助。


非常感谢您提供的任何帮助/提示。

您的配置如下所示吗

myModule.config(['$httpProvider', function($httpProvider) {
  $httpProvider.interceptors.push('testInterceptor');
}]);
我使用拦截器,但内联导致以下代码:

myModule.config(['$httpProvider', function($httpProvider) {
  $httpProvider.interceptors.push(function($q) {
    return {
        // optional method
        'request': function(config) {
            return config || $q.when(config);
        },

        // optional method
        'requestError': function(rejection) {
            return $q.reject(rejection);
        },

        // optional method
        'response': function(response) {
            return response || $q.when(response);
        },

        // optional method
        'responseError': function(rejection) {
            return $q.reject(rejection);
        }
    }
  })
}]);

但我似乎从未遇到requestError或responseError,即使服务器抛出500个错误,但这看起来像是另一个问题。希望此代码示例对您有所帮助。

您能提供更多有关如何将模块组合在一起的信息吗?我做了一个小测试,一切正常:嗨,乔纳斯,非常感谢你的回答,我设法解决了它。问题是grunt build使用google CDN作为angularjs框架,它加载了angularjs的旧版本,具体来说是Angular1.0.7。@EricK你的建议对我也很有效。