jQuery和vue 设置ajax全局请求

一个很常见的问题,如果用户登录网站session过期,需要用户返回登录页面重新登录。

如果是http请求可以在后台设置拦截器,统一拦截并跳转。但是ajax方法并不能通过后台直接跳转。

所以我们可以写一个ajax全局方法,让每一个ajax请求都访问这个方法,如果经过判断session过期,可以跳转到登录页面。

以下是引用jQuery的ajax全局方法:

$.ajaxSetup({
    error : function(x, status, e) {
        if (x.status == '403') {
            alert('您没有权限执行当前操作!');
        } else {
            console.log('系统错误,请联系管理员!');
        }
        return false;
    },
    complete : function(r, s) {
        var istimeout = r.getResponseHeader('sessionstatus')=='timeout';
        if (istimeout) {
            //alert(r.responseText);
            var loginurl = r.getResponseHeader("loginurl");
            parent.window.location = loginurl;
        }
    }
});

 

我当时做这个项目的时候还用到了vue,所以把vue的ajax全局方法也写一下

    Vue.http.interceptors.push(function(request) {

            // modify request
            request.method = 'POST';

            // return response callback
            return function(response) {
                var sessionAjax = response.headers.map.sessionstatus;
                if (sessionAjax != undefined) {
                    var loginurl = response.headers.map.loginurl[0];
                    parent.window.location = loginurl;
                }
            };
        });

 

转载于:https://www.cnblogs.com/banma/p/11468385.html

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页