angular 路由拦截

 $scope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){
       //如果是登录页面就不进行处理 retrun
       if(toState.name=='login') return;
         //comApi是有一个工具类 此处是判断是否登录 登录信息放缓存了
        if(!comApi.isNotNullAndUndefined($sessionStorage.ustu)){
       //不是登录页面 取消默认跳转 去登录页面
     event.preventDefault();// 取消默认跳转行为
      $state.go("login",{from:toState.name,w:'notLogin'});//跳转到登录界面
                }

            });

//登录控制器
 var from = $stateParams.from;
        console.log($stateParams);
         $state.go(from && from != "login" ? from : "app.home");

/**
 * Created by wanggs  */
//拦截http请求的拦截器 httpProvider提供了一个名为interceptors的数组.这个数组接受拦截器服务注册,通过过程次的注册最终会形成拦截器链.这样每次在调用http服务的时候,angular都会通过我们定义的拦截点(切面)进行相应的Ajax动作修改.
app.factory('factoryFilters', function ($sessionStorage, $location) {
    var sessionInjector = {
        request: function (config) {
            //请求之前
            //判断是否登陆.登陆后将token放到请求头部
            if ($sessionStorage.ustu) {
                config.headers["hahh"] = $sessionStorage.ustu;
            }
            return config;
        },
        response: function (config, header, header1, header2) {            //请求成功之后
            //从返回头部获跳转
            if (config.headers("hahh")) {
                $sessionStorage.ustu = config.headers("hahh");
            }
            return config;
        },
        requestError: function (config) {
        //请求之前错误
            return config;
        },
        responseError: function (config) {
            //请求之后错误
            return config;
        }
    };
    return sessionInjector;
});
app.config(['$httpProvider', function ($httpProvider) {
    $httpProvider.interceptors.push('factoryFilters');
}]);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值