嗨,下面是我来自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;
});//set拦截器在app.js var interceptorApp =angular.module(‘拦截器’,[]);
interceptorApp.config(function($httpProvider) {
$httpProvider.interceptors.push('genericInterceptor');
});请帮我解决我的问题,如何设置拦截器工作。
发布于 2022-05-23 08:28:41
//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);
}
}
}https://stackoverflow.com/questions/72345329
复制相似问题