Angularjs拦截器:拦截器不工作

  • 本文关键字:工作 Angularjs angularjs
  • 更新时间 :
  • 英文 :


嗨,这是我的代码从angularjs代码的第一部分确切地显示了我如何使请求php返回我的数据时,有一个错误的代码,当有一个问题。当它返回错误代码(例如401)时,前端会出现错误,一切都会中断。据我所知,我必须使用一个拦截器,这样我就可以捕获错误号而不犯错误。我不能做这个拦截。

app.js
app.factory('httpRequester', function ($http, $route) {

var promise;
var myService = {
async: function (myData) {

//Create my obj for request
var req = {
method: myData.Method,
url: 'https://**********/' + url,
headers: {
'X-API-KEY': '**************',
'KEY': myData.Authentication.AccessToken
},
data: myData

};


promise = $http(req).then(function (response) {

if (response.data === 'permission denied') {

window.location.href = '#/';
} else {
return response;
}
});

return promise;
}
};

return myService;
});

//在app.js中设置拦截器var interceptorApp = angular。模块("interceptorApp",[]);

interceptorApp.config(function($httpProvider) {
$httpProvider.interceptors.push('genericInterceptor');
});

请帮助我解决我的问题,如何设置拦截器工作

//Function  for set error and success after request
var testInterceptor = function ($q)  
{  
return {  
request: function (config)  
{  
//console.log('request started...');  
},  
requestError: function (rejection)  
{  
console.log(rejection);  
// Contains the data about the error on the request and return the promise rejection.    
return $q.reject(rejection);  
},  
response: function (result)  
{  
// console.log('data for ' + result.data.name + ' received');  
//If some manipulation of result is required before assigning to scope.    
result["testKey"] = 'testValue';  
console.log('request completed');  
return result;  
},  
responseError: function (response)  
{  
// console.log('response error started...');  
//Check different response status and do the necessary actions 400, 401, 403,401, or 500 eror     
return $q.reject(response);  
}  
}  
}

最新更新