angular项目,之前项目正常,未修改路由,现在点击跳转,直接回到登录页面。

angular项目,之前项目正常,未修改路由,现在点击跳转,直接回到登录页面。
请问有没有大神遇到过类似的情况或者知道怎么解决的,谢谢。

阅读 4.6k
5 个回答

复现下此场景,是点击任一链接都会跳转到登录界面还是点击某一链接才跳转到,前者的话,查看下设置的相对路径是否有问题。后者的话,看下此路径的地址与点击的链接是否匹配。

有没有设置token,会不会过期了

首先确定是因为路由不正确您 redirect 登录页面还是做了登录拦截 redirect 登录界面,最后才查看跳转的路由对应的组件的业务逻辑!

你的问题不够明确啊,我理解是这种情况,你点击跳转到登录页,正常如果说用户登录的话,你这边是不会跳转到登录页的。所以说这时候需要增加一个拦截器,让你的项目每次发送请求的时候进行判断,判断内容就是你所储存的用户登录,后台给你返回的token,根据token内容来决定页面是否跳转。希望可以帮助你,我暂时只能用session存储数据

angular.module('app').config(['$httpProvider', function($httpProvider) {
    $httpProvider.interceptors.push(HttpInterceptor);
}]);

angular.module('app').factory('HttpInterceptor','$state', ['$q', HttpInterceptor]);

function HttpInterceptor($q) {
    return {
        // 请求发出之前,可以用于添加各种身份验证信息
        request: function(config) {
            var loginData = JSON.parse(sessionStorage.getItem('loginData'));
            if(loginData) {
                console.log(loginData)
                if(loginData.login == true) {
                
                }
            }else{
                window.location.href="index.html#/access/signin"
            }
            
            return config;
        },
        // 请求发出时出错
        requestError: function(err) {
            return $q.reject(err);
        },
        // 成功返回了响应
        response: function(res) {
            return res;
        },
        // 返回的响应出错,包括后端返回响应时,设置了非 200 的 http 状态码
        responseError: function(err) {
            return $q.reject(err);
        }
    };
}

上面的大佬讲的都很对!首先,你要看你的路由是不是写错了,导致没有匹配到,从而重定向到首页了?还是被路由守卫拦截了,做了处理跳转到首页?
我建议在问问题的时候尽量的可以展示下你的那块代码,让大家能更明了你的问题所在。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进