$ httpProvider.interceptors gerçekte arayacak gibi görünmüyor. JSFiddle üzerinde, önleyici çalıştırıldığında ve $ http yanıtı başarılı olduğunda kaydedilen bir örnek oluşturdum. İstek önleme, yanıt zaten başarılı olarak döndükten sonra çalıştırılır. Bu biraz geriye doğru görünüyor.
TransformRequest'i kullanamıyorum çünkü yapılandırmadaki paramları değiştirmem gerekiyor. Bu kısım örnekte gösterilmemiştir. Veri döndürdü sonra
kullanıyorum angularjs 1.1.5
http://jsfiddle.net/skeemer/K7DCN/1/
JavaScript
var myApp = angular.module('myApp', []);
myApp.factory('httpInterceptor', function ($q) {
return {
request: function (config) {
logIt('- Modify request');
return config || $q.when(config);
}
};
});
myApp.config(function ($httpProvider) {
$httpProvider.interceptors.push('httpInterceptor');
});
function MyCtrl($scope, $http) {
// Hit a server that allows cross domain XHR
$http.get('http://server.cors-api.appspot.com/server?id=8057313&enable=true&status=200&credentials=false')
.success(function (data) {
//logIt(data[0].request.url);
logIt('- GET Successful');
});
$scope.name = 'Superhero';
}
// Just the logging
var logs = document.getElementById('logs');
function logIt(msg) {
var e = document.createElement('div');
e.innerHTML = msg;
logs.insertBefore(e, logs.firstChild);
}
HTML
<div ng-controller="MyCtrl">Hello, {{name}}!</div>
<br/>
<div id="logs"></div>
Vay ... şimdi aptal hissetmek. Yine de teşekkürler! Diğer kodumda, $ httpProvider.interceptors yerine, kullanımdan kaldırılmış $ httpProvider.responseInterceptors kullanıyordum. – skeemer