gpt4 book ai didi

javascript - 在 $http 响应拦截器中使用 $state.go

转载 作者:行者123 更新时间:2023-12-02 15:27:13 25 4
gpt4 key购买 nike

当使用 http 拦截器接收到禁止或未经授权的 http 请求时,我尝试进行状态导航,但我在 $state.go Promise 上收到错误

错误:转换被取代

这是我的responseError拦截器:

angular.module('starter')

.factory('httpResponseInterceptor', function($injector) {
return {
responseError: function(errorResponse) {

var loginParams = {
info: true,
reason: 'Please login.',
title: errorResponse.data
};
var $state = $injector.get('$state');

switch (errorResponse.status) {
case 403:
$state.go('login', loginParams).then(function() {}, function(res) {
console.log(res);
});
break;
case 401:
$injector.get('$state').go('login', loginParams);
break;
}

return errorResponse;
}
};
});

这种情况下有什么办法可以使用拦截器吗?不过,在 $state.go 周围设置一个超时就可以解决问题

最佳答案

首先,拦截器的工作不是执行 UI 操作。应该有一个 AuthService/Provider/Controller,您应该在其中发送拦截器捕获的数据,并根据该数据,在那里采取所需的操作。您可以使用事件系统或调用服务内的方法。

这可能无法解决您的问题,但它将解决您 future 的挑战。

来自克卢日的问候。

关于javascript - 在 $http 响应拦截器中使用 $state.go,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33592140/

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