Javascript 角度HTTP拦截器未命中错误函数
因此,我直接从angular HTTP文档中提取了拦截器,但这仍然不起作用。“request”和“response”函数被调用,但决不会调用“requestError”或“responseError” 在服务器上,我返回一个400,但实际上任何错误都可以。这是服务Javascript 角度HTTP拦截器未命中错误函数,javascript,angularjs,http,express,Javascript,Angularjs,Http,Express,因此,我直接从angular HTTP文档中提取了拦截器,但这仍然不起作用。“request”和“response”函数被调用,但决不会调用“requestError”或“responseError” 在服务器上,我返回一个400,但实际上任何错误都可以。这是服务 User.publicProfileGetProfile = function (value, type) { return $http({ url: '/public/profile/' + type + '
User.publicProfileGetProfile = function (value, type) {
return $http({
url: '/public/profile/' + type + '/' + value,
method: 'GET'
}).then(function (response) {
return response;
}, function(error){
return error;
});
};
没有调用错误函数,每个响应都通过响应函数。正常情况下,标准角度误差与错误请求(400)一起显示。当返回400错误时,它只是通过拦截器中的“response”函数“undefined”
如果我忘记包含任何重要信息,请告诉我 通过使用
return
,错误处理程序将拒绝转换为成功。相反,使用throw
链接拒绝
User.publicProfileGetProfile = function (value, type) {
return $http({
url: '/public/profile/' + type + '/' + value,
method: 'GET'
}).then(function onSuccess(response) {
return response;
}, function onReject(error){
//return converts rejection to success
//return error;
//use throw to chain rejection
throw error;
});
};
通过使用
return
,错误处理程序将拒绝转换为成功。相反,使用throw
链接拒绝
User.publicProfileGetProfile = function (value, type) {
return $http({
url: '/public/profile/' + type + '/' + value,
method: 'GET'
}).then(function onSuccess(response) {
return response;
}, function onReject(error){
//return converts rejection to success
//return error;
//use throw to chain rejection
throw error;
});
};
当我看到JSFIDLE(来自@georgeawg)工作正常时,我确保我的JSFIDLE看起来完全一样。当它不起作用时,我环顾四周,看看是否还有其他可能导致问题的拦截器。我有另一个拦截器,它首先被击中,并将任何错误作为响应返回,然后它们将通过这个拦截器,并将其作为成功响应进行处理。我把它拆了,现在一切都正常了 当我看到JSFiddle(来自@georgeawg)工作正常时,我确保我的JSFiddle看起来完全一样。当它不起作用时,我环顾四周,看看是否还有其他可能导致问题的拦截器。我有另一个拦截器,它首先被击中,并将任何错误作为响应返回,然后它们将通过这个拦截器,并将其作为成功响应进行处理。我把它拆了,现在一切都正常了 所以我做出了改变。。。然而,“响应”函数(仍然未定义)仍然会被调用,并且在控制器中,错误结果仍然不会被调用。
errorResponse
interceptor在中被调用以获得状态400响应。谢谢!当我看到JSFIDLE工作正常时,我确保我的JSFIDLE看起来完全一样。当它不起作用时,我环顾四周,看看是否还有其他可能导致问题的拦截器。我有另一个拦截器,它首先被击中,并将任何错误作为响应返回,然后它们将通过这个拦截器,并将其作为成功响应进行处理。我把它拆了,现在一切都正常了!所以你的另一个拦截器将拒绝转化为成功。请注意,没有返回的错误拦截器将使用null
值将拒绝转换为成功。要连锁拒绝,必须抛出错误代码>或返回$q.reject(错误)代码>。所以我做了更改。。。然而,“响应”函数(仍然未定义)仍然会被调用,并且在控制器中,错误结果仍然不会被调用。errorResponse
interceptor在中被调用以获得状态400响应。谢谢!当我看到JSFIDLE工作正常时,我确保我的JSFIDLE看起来完全一样。当它不起作用时,我环顾四周,看看是否还有其他可能导致问题的拦截器。我有另一个拦截器,它首先被击中,并将任何错误作为响应返回,然后它们将通过这个拦截器,并将其作为成功响应进行处理。我把它拆了,现在一切都正常了!所以你的另一个拦截器将拒绝转化为成功。请注意,没有返回的错误拦截器将使用null
值将拒绝转换为成功。要连锁拒绝,必须抛出错误代码>或返回$q.reject(错误)代码>。