我試圖在攔截器中準備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'將解決你的問題。 –