所以我每次都有一台服务器返回200作为响应。我需要检查错误的响应response.data.error
如果我发现错误,我需要将http请求发送到我的应用程序代码中的catch方法。
这是我想要发生的一个例子..
拦截器代码
// interceptor code
{
response:function(response){
if (response.data.error) {
return $q.reject(response)
}else{
return response
}
},
responseError:function(rejection){
// error handling logic
return $q.reject(rejection)
}
}
应用代码
// application code
$http.get('/api/stuff')
.then(function(){
// do success stuff
}).catch(function(){
// the function i want to run!!!
})
答案 0 :(得分:1)
好吧,这更像是一个愚蠢的错误。这就是我做错了。
就像一个哑巴我在函数内部而不是直接在响应中返回。所以我最终做的是创建一个标志,如果该标志为真,则直接返回响应函数。
拦截器代码
// interceptor code
{
response:function(response){
myCustomErrorFunction(){
if (response.data.error) {
return $q.reject(response)
}else{
return response
}
}
},
responseError:function(rejection){
// error handling logic
return $q.reject(rejection)
}
}
应用代码
// application code
$http.get('/api/stuff')
.then(function(){
// do success stuff
}).catch(function(){
// the function i want to run!!!
})
感谢帮助人员。
答案 1 :(得分:0)
尝试通过以下方式捕获错误:
.catch
我不认为.then
会影响它,您需要在$global:OutMessage+="$($var) - test"
区块中执行检查。