我正在使用angular 1.5 with typescript,我想创建一个拦截器,在自定义标头中插入标记,并从每个响应中更新它。
运行时,我得到以下异常:
未捕获错误:[$ injector:strictdi]函数($ q)未使用 显式注释,不能在严格模式下调用
class AuthInterceptor implements ng.IHttpInterceptor {
$q:ng.IQService;
static $inject = ['$q'];
constructor($q:ng.IQService) {
this.$q = $q;
}
static factory($q:ng.IQService):AuthInterceptor {
return new AuthInterceptor($q);
}
request = (config:ng.IRequestConfig):ng.IRequestConfig => {
// config.headers = config.headers || {};
console.info('Request config md', config);
// config.headers['token'] = 'test token';
return config;
};
response = <T>(response: ng.IHttpPromiseCallbackArg<T>):ng.IPromise<T> => {
console.info('Response:', response);
// modify response
return this.$q.when(response);
};
}
let httpConfig = ($httpProvider:ng.IHttpProvider) => {
$httpProvider.interceptors.push(AuthInterceptor.factory);
};
angular.module('app').config(httpConfig);
你有什么想法,我怎么能解决这个问题?
提前致谢。
答案 0 :(得分:0)
请试试这个。这是每个请求最简单的拦截器
app.factory('myInterceptor', function() {
var requestInterceptor = {
request: function(config) {
return config;
}
};
return requestInterceptor;
});
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('myInterceptor');
}]);