Rumah > Soal Jawab > teks badan
在angularjs中添加拦截器,发现$http发出的请求会拦截,但$window.location.href确不会拦截,想请问一下拦截器是不是只拦截$http发出的请求?
为情所困2017-05-15 17:15:17
Dokumen rasmi menerangkan dengan jelas dan mempunyai contoh
https://docs.angularjs.org/ap...$http
// register the interceptor as a service
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
return {
// optional method
'request': function(config) {
// do something on success
return config;
},
// optional method
'requestError': function(rejection) {
// do something on error
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
},
// optional method
'response': function(response) {
// do something on success
return response;
},
// optional method
'responseError': function(rejection) {
// do something on error
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
}
};
});
$httpProvider.interceptors.push('myHttpInterceptor');
// alternatively, register the interceptor via an anonymous factory
$httpProvider.interceptors.push(function($q, dependency1, dependency2) {
return {
'request': function(config) {
// same as above
},
'response': function(response) {
// same as above
}
};
});
怪我咯2017-05-15 17:15:17
Saya ingat ia adalah html dan permintaan antara muka, saya console.log sebelum ini
曾经蜡笔没有小新2017-05-15 17:15:17
Apa yang dipanggil $window
其实是对浏览器 window
pembungkusan sekunder rujukan objek, jadi mengapa ada perkara ini? Tujuannya adalah terutamanya untuk kebolehujian kod.
Jadi, kesimpulannya benda ni tiada kena mengena dengan $http, dan semestinya ia tidak akan menggunakan pemintas
Sudah tentu, saya masih memahami tajuk soalan, tetapi saya hanya berharap untuk melakukan beberapa perkara tambahan apabila membuat lompatan. Masalah ini hanya boleh diselesaikan dari perspektif penghalaan.
Di atas!