AngularJS $ httpProvider未定义

Fre*_*iot 8 angularjs

我试图使用拦截器的基本样本,所以我盯着一小段代码,但没有成功:

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');
});
Run Code Online (Sandbox Code Playgroud)

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

Uncaught TypeError: Cannot call method 'push' of undefined from app 
Run Code Online (Sandbox Code Playgroud)

任何的想法?

谢谢

Jul*_*ian 12

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

我使用angular 1.1.4做了一个使用示例的plunker,请在此处查看http://plnkr.co/edit/cuPfat?p=preview


Ste*_*wie 5

$httpProvider.interceptors在AngularJS v.1.1.4中添加了数组(我相信).你最有可能使用一些旧版本的AngularJS.

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