$ httpで渡されたオブジェクトにインターセプタを追加するのではなく、インターセプタでhttpリクエストURLを準備しようとしました。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
すべてのヘルプここに私が試したコードのサンプルはありますか?
は、configオブジェクトを返し、その後https://docs.angularjs.org/api/ng/service/$http#interceptorsをお読みください'myInterceptor'工場から –
@KrzysztofSafjanowskiあなたはそれを簡単に説明していただけますか? –
工場**は変数 'interceptor'を返します。 'myInterceptor'に' return interceptor'というステートメントを追加すると、あなたの問題は解決します。 –