AngularJS$http承诺回调,参数未定义



>我有一个简单的httpcall,像这样

$http({
"params": {
permission
},
"cache": true,
"method": "GET",
"url": "base/authorize/any/"
}).then(function successCallback(response){...},function failCallback(response){...});

调用它时,后端返回 Http 400 错误请求。这没什么特别的。

奇怪的是:后端响应后,成功回调被执行。我本以为 faliCallback 被执行了。

更奇怪的是:在 successCallback 响应内部是未定义的。

你们谁能解释一下这种行为? 我真的很感激任何帮助。

编辑 1: 以防万一需要信息。此调用实际上将被此拦截器拦截

angular.module("app").factory("UnauthorizedInterceptor",
UnauthorizedInterceptor);
function UnauthorizedInterceptor($injector) {
const service = {
responseError
};
function responseError(response) {
if (response.status === 401) {
$injector.get("AuthenticationService").Logout();
$injector.get("$state").go("home", {
logout : true
});
}
}
return service;
}

尝试在响应中返回被拒绝的承诺错误拦截器:

return $q.reject(response);

您可以在 GitHub 上的官方文档和本期中查看示例

最新更新