gpt4 book ai didi

javascript - 如何显示从 HttpResponseErrInterceptor 到特定 Controller 的响应消息

转载 作者:行者123 更新时间:2023-11-30 14:28:19 24 4
gpt4 key购买 nike

我在 createController.js 上有一个发布请求,但我的 onError promise 不起作用。

ManageCaseOutlineServices.getInsert({
table: 'manageCaseOutline'}, self.caseOutlineHeader).then(function (response) {
self.isLoading = false;
self.successMessage = "Record Successfully Saved";
self.openAlertModal('success');
}, function (error) {
self.isLoading = false;
console.log(error.data); //this line code is not displaying.
});

当我调试我的代码时,我看到我在我的 maincontroller.js 中配置了一个 HttpResponseErrInterceptor,所以我认为这就是 onError 不起作用的原因。

module.factory('HttpResponseErrInterceptor',
function($q, $location, $timeout, $rootScope, apiConfig, ErrorLogger) {
return {
responseError : function(response) {
var defer = $q.defer();
switch (response.status) {
case 403:
ErrorLogger.logError(response);
break;
case 404:
ErrorLogger.logError(response);
break;
case 422:
console.log(response.data);
break;
case 504:
ErrorLogger.logError(response);
break;
case 502:
ErrorLogger.logError(response);
break;
case 500:
ErrorLogger.logError(response);
break;
}
$rootScope.isLoading = false;

return defer.promise;
}
};
});

module.config([ '$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('BearerAuthInterceptor');
$httpProvider.interceptors.push('HttpResponseErrInterceptor');
} ]);

我在上面的 switch 语句中添加了一个错误代码 422,这是我的响应中的错误代码。我尝试添加控制台日志,当我在其他 Controller 上收到错误 422 时,它被记录下来。

现在我的问题是如何访问特定 Controller 的错误响应,以便能够在我的 HTML View 中显示它?

最佳答案

错误拦截器需要重新抛出错误:

module.factory('HttpResponseErrInterceptor',
function($q, $location, $timeout, $rootScope, apiConfig, ErrorLogger) {
return {
responseError : function(response) {
̶v̶a̶r̶ ̶d̶e̶f̶e̶r̶ ̶=̶ ̶$̶q̶.̶d̶e̶f̶e̶r̶(̶)̶;̶
switch (response.status) {
case 403:
ErrorLogger.logError(response);
break;
case 404:
ErrorLogger.logError(response);
break;
case 422:
console.log(response.data);
break;
case 504:
ErrorLogger.logError(response);
break;
case 502:
ErrorLogger.logError(response);
break;
case 500:
ErrorLogger.logError(response);
break;
}
$rootScope.isLoading = false;

̶r̶e̶t̶u̶r̶n̶ ̶d̶e̶f̶e̶r̶.̶p̶r̶o̶m̶i̶s̶e̶;̶
return $q.reject(response);
}
};
}
)

关于javascript - 如何显示从 HttpResponseErrInterceptor 到特定 Controller 的响应消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51588376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com