目前我只能做到請求返回是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),要怎麼寫才能讓攔截器實現這個功能?
漂亮男人2017-05-15 17:04:16
修正:
「請求另外一個連結(如: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');
});