angular.jsをやってみる (25) - $httpProvider.interceptors -
たまたまドキュメントを見ていたら、$httpで処理されるリクエストやレスポンスなどにインターセプターを利用してfilter的なことできるっぽい。ということでやってみた
app.js
angular.module("app", [])
.factory("myHttpInterceptor", function($q) {
return {
"request": function(config) {
console.debug("request: " + config.method + " " + config.url);
return config || $q.when(config);
},
"response": function(response) {
console.debug("response", response);
return response || $q.when(response);
}
};
})
.config(function($httpProvider) {
$httpProvider.interceptors.push("myHttpInterceptor");
})
.controller("SampleController", function($scope, $http) {
$http.get("/sample/1").then(function(res) {
console.log(res);
});
});
https://docs.angularjs.org/api/ng/service/$http#interceptorsに記載されているのを見ればいいんですが、$httpProvider.interceptors.pushでproviderあたりを指定するか引数にfunctionを渡して処理されるイベントメソッドを持つオブジェクトを返すようにすればいいらしい
ってな感じで一応メモ