Javascript 角度HTTP拦截器未命中错误函数

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 + '

因此,我直接从angular HTTP文档中提取了拦截器,但这仍然不起作用。“request”和“response”函数被调用,但决不会调用“requestError”或“responseError”

在服务器上,我返回一个400,但实际上任何错误都可以。这是服务

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(错误)