我试图在拦截器中准备http请求url,而不是将它添加到在$ http中传递的对象。下面是代码,我尝试了样品:在AngularJS中的拦截器中准备http请求url
angular.module('myapp', [])
.service('myservice', function() {
this.myfunction = function() {
var req = {method: 'POST', reqName: 'getInfo'};
return $http(req);
}
})
.factory('myInterceptor', function() {
var interceptor = {
'request': function(config) {
config.url = "http://www.myapi.com/demo/"+config.reqName;
return config;
}
}
return interceptor;
})
.config(function($httpProvider) {
$httpProvider.interceptors.push('myInterceptor');
})
但我发现了一个错误,它说:
Error: [$http:badreq] Http request configuration url must be a string.
Received: undefined
任何帮助吗?
请仔细阅读https://docs.angularjs.org/api/ng/service/$http#interceptors然后返回配置对象从'myInterceptor'工厂 –
@KrzysztofSafjanowski您能否简单解释一下(如果您找到解决方案)。 –
工厂**应该**返回变量'拦截器'。在'myInterceptor'中添加语句'return interceptor'将解决你的问题。 –