angular.js - angularjs如何配置http拦截器,当遇到404应答的时候重新发送请求
本文介绍了angular.js - angularjs如何配置http拦截器,当遇到404应答的时候重新发送请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
目前我只能做到请求返回是404的时候页面跳转到错误页面
// 创建拦截器
app.factory('Http404Interceptor', function ($q)
{
return {
responseError: function (response)
{
if(response.status == 404){
location.href = appURL.fullUrl + 'error';
}
return $q.reject(response);
}
}
});
// 配置拦截器给app
app.config(function ($httpProvider)
{
$httpProvider.interceptors.push('Http404Interceptor');
});
但是现在的需求是当请求返回404的时候,重新发起请求到另外一个链接(如:a.php),要怎么写才能让拦截器实现这个功能?
解决方案
修正:
请求另外一个链接(如:a.php)的意思是?请求另一个api
获取数据作为fallback
?
如果是这个意思,那不是还挺简单的么:
// 创建拦截器
//之前忘了这里还有个循环依赖的问题,我去
app.factory('Http404Interceptor', function ($q, $injector)
{
return {
responseError: function (response)
{
if(response.status == 404){
var $http = $injector.get('$http');
return $http.get('anotherUrl');
}
return $q.reject(response);
}
}
});
// 配置拦截器给app
app.config(function ($httpProvider)
{
$httpProvider.interceptors.push('Http404Interceptor');
});
这篇关于angular.js - angularjs如何配置http拦截器,当遇到404应答的时候重新发送请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文