想要一个简单的拦截器,它将在每200个状态上触发一个日志记录方法。这很容易设置,但现在我注意到我的所有Angular模板都是通过$ httpProvider加载的,从而触发了我的200拦截器。有什么方法可以区分模板加载和实际API调用?
$httpProvider.interceptors.push(function() {
return {
response: function(response) {
if(response.status === 200) console.log(response);
return response;
}
};
});
答案 0 :(得分:3)
是。您可以。在响应对象中,有一个配置对象,内部配置对象是您请求的资源的URL。所以,
$httpProvider.interceptors.push(function() {
return {
response: function(response) {
function endsWith ( str, suffix ) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
if(response.status === 200 && !endsWith( response.config.url, '.html') ) console.log(response);
return response;
}
};
});