我有一个登录系统,会话将持续2个小时。 2小时后,当客户端进行API调用时,他们会收到错误:
{
"Success": false,
"Error": {
"ErrorCode": "002",
"ErrorMessage": "Session expired"
}
}
我需要在发生这种情况时将客户端重定向到/login
。问题是我从单个API调用中得到了这个错误,所以不是改变每个API调用,是否可以有一个全局拦截器?
答案 0 :(得分:2)
根据Interceptors
找到here的示例,您可以在拦截器的response
部分执行以下操作:
response: function(resp){
// resp.data will contain your response object from the server
if(resp.data && !resp.data.Success){
// check for error code
if(resp.data.Error && resp.data.ErrorCode === '002'){
$location.path('/login');
return $q.reject(resp);
}
}
return resp || $q.when(resp);
},
这假设您的服务器在收到此错误消息时返回200
,而不是401
或403
,但这看起来像您和&#39} #39;正在做。希望有所帮助。