8

我正在尝试使用拦截器的基本示例,所以我盯着一小段代码但没有成功:

var app = angular.module('app',[]).
  config(['$routeProvider','$locationProvider', function($routeProvider,$location) {
    $routeProvider.
    when('/home', {templateUrl: 'home.html',   controller: homeCtrl}).
    when('/login', {templateUrl: 'login.html',   controller: loginController}).
    otherwise({redirectTo : '/home' });
}]);


app.config(function ($httpProvider) {
    $httpProvider.interceptors.push('httpRequestInterceptor');
});

当我启动我的索引页面时,我在控制台中有一条错误消息:

Uncaught TypeError: Cannot call method 'push' of undefined from app 

任何想法?

谢谢

4

2 回答 2

12

你的代码很完美。您需要确保使用正确版本的 angularjs。$http.interceptors 数组是在 1.1.4 版本中添加的。

我用你的例子做了一个 plunker 使用 angular 1.1.4,在这里查看http://plnkr.co/edit/cuPfat?p=preview

于 2013-10-14T17:04:18.627 回答
5

$httpProvider.interceptors数组是在 AngularJS v.1.1.4 中添加的(我相信)。您很可能正在使用一些旧版本的 AngularJS。

顺便说一句,那个错误说$httpProvider.interceptors没有定义,不像$httpProvider你的标题所暗示的那样。

于 2013-10-14T16:55:16.197 回答