react axios和ajax网络请求拦截(session过期跳转登录页)
网络请求拦截经常也可用到,比如在所有接口消息请求头部加上验证信息token之类的,或者接口报某类错误时统一处理。这里主要用在请求接口时,判断session是否过期,统一返回状态码区分,如果过期了跳转登录页重新登录
拦截axios部分
重新封装axios请求
//axios拦截器
import axios from 'axios';axios.defaults.timeout = 10000;
axios.defaults.withCredentials = true;axios.interceptors.request.use(config => {//发送请求操作,统一再请求里加上userId config.headers['userId'] = window.sessionStorage.getItem("userId");return config;
}, error => {//发送请求错误操作console.log('请求失败')return Promise.reject(error);
})axios.interceptors.response.use(response => {//对响应数据做操作if(parseInt(response.data.code, 10) <= '2000000') {//console.log('请求成功');return response}if(response.data.code === '2000401' || response.data.code === 2000401) {console.log('已过期重新登陆', response.data.code);window.location.href = '/login';return Promise.reject(response);}else {console.log('请求失败', response.data.code);alert(response.data.message);return Promise.reject(response);}
}, error => {//对响应数据错误做操作console.log('请求error', error.message);return Promise.reject(error);
})export default axios;
拦截ajax网络请求部分
这里用到了ajaxSetup设置
//ajax全局设置拦截器
import $ from 'jquery';
$.ajaxSetup({ contentType:"application/x-www-form-urlencoded;charset=utf-8", beforeSend: function(xhr) { //发送请求前的操作xhr.setRequestHeader("userId", window.sessionStorage.getItem("userId"))},complete:function(XMLHttpRequest,textStatus){ //接收请求后的操作var res = XMLHttpRequest.responseText;try{var jsonData = JSON.parse(res);if(parseInt(jsonData.code, 10) <= '2000000'){//console.log('请求成功');}else if(jsonData.code === '2000401' || jsonData.code === 2000401){console.log('已过期重新登陆', jsonData.code);window.location.href = '/login';}else{console.log('请求失败', jsonData.code);alert(jsonData.message);}}catch(e){}},
});export default $;
最后只需在页面中引入一次即可。
react axios和ajax网络请求拦截(session过期跳转登录页)相关推荐
- dwz ajax session超时跳转登录页(struts2自定义拦截器)
1.定义struts2拦截器(网上例子很多) 代码如下: package rt.intercepter;import java.util.Map;import javax.servlet.http.H ...
- dwz ajax session超时跳转登录页(struts2自定义阻碍器)
为什么80%的码农都做不了架构师?>>> 培养奇才的先决前提是公共的聪明以前的项目用的是springsecurity3.0,session超时主动跳转的登录页(这个页面可配), ...
- session过期跳转登录页面
2019独角兽企业重金招聘Python工程师标准>>> 项目需要做一个自动登出的功能,查询了网上的资料,一开始准备用session监听做,按照下面方式配置监听器 1.在项目的web. ...
- SSM拦截ajax请求判断session过期
项目使用ssm作为后台框架,需要在后台判断session是否过期,并跳转登录页. 1.定义一个filter,拦截所有的请求. package com.acat.filter;import javax. ...
- ajax请求 session过期跳转首页的两种处理方式
在处理session过期跳转首页时遇到了一些困难,经过百度发现了大致两种方法,在这里进行一下整理: 1.直接重写jquery ajax方法: (function($){ //备份jquery的aj ...
- Ajax Session失效跳转登录页面的方法
在Struts应用中,我们发出的请求都会经过 相应的拦截器进行相关处理,一般都会有一个用户登录拦截(Session失效拦截):一般请求的话,如果Session失效时,我们会跳到登录页面,可是如果我们采 ...
- Shiro session过期跳转到登录页面问题
Shiro session过期跳转到登录页面问题 shrio的session过期后(工程重启或者用户长时间没进行任何操作),当客户端再次向服务端发起请求时,shrio会判断用户没有登录授权,然后对请求 ...
- springMVC session过期跳转到登录界面
1.非ajax的传统型跳转和ajax请求数据跳转 2.使用springMVC拦截器拦截请求,判断session是否过期 3.使用ajaxSetup 全局判断session请求是否过期. 这种方式不是最 ...
- vue---axios拦截器处理登录失效跳转登录页
axios拦截器(Interceptors)主要分为: (1)请求拦截器:在发送请求前进行拦截,可以根据发送的请求参数做一些发送参数的调整,例如设置headers (2)响应拦截器:在后台返回响应时进 ...
最新文章
- iPhone真机调试流程
- SAP MM 物料主数据Plant Data Storage 1视图里的Storage Bin
- 【数字信号处理】线性常系数差分方程 ( 使用 matlab 求解 “ 线性常系数差分方程 “ 示例 | A 向量分析 | B 向量分析 | 输入序列分析 | matlab 代码 )
- 查询数据库表名,数据表信息,MySQL Key值(PRI, UNI, MUL)的含义
- android 中国通信乱码问题
- 以下python语言关键字在异常处理_【单选题】以下 Python 语言关键字在异常处理结构中用来捕获特定类型异常的选项是: ( )...
- 论文落地 101:算法工程化的那些坑
- 重学java基础第四课:关于教育和对大家的期望
- mysql insert 不需要日志_详解MySQL|你不知道的新特性-8.0错误日志增强
- select2控件动态更新option
- vue 父子组件传值以及方法调用,平行组件之间传值以及方法调用大全
- 活动回顾 | 智慧城市的发展趋势与挑战
- Linux编程获取本机IP地址
- ndroid分辨率 dpi 屏幕尺寸 对比图
- 原型设计之Axure RP
- 海思 3559 SVP NNIE demo解读
- 春天里,阳光下,无限的哀思和想念
- 用python做动画的代码_Python应用 | 三行代码实现GIF动画
- 项目:金融行业反欺诈模型
- 仿八大行星绕太阳3D旋转效果
热门文章
- MK-TD环保型铝合金脱模剂
- TQM 6支柱7原则
- excel中如何输入数组公式详细介绍
- 模糊逻辑学习--什么是模糊逻辑
- 快递企业下一步:国际化、多元化,发展科技提升竞争力
- Debian10.x环境下安装 ProxMox VE 6.x(PVE)全教程
- 超黑光摄像机可以有多“黑“?
- 【Linux】VNC xfc4安装指导
- java公众号图片上传_java微信公众号上传下载图片,springmvc demo
- ue4和Airsim仿真无人机,键盘控制无人机运动