网络请求拦截经常也可用到,比如在所有接口消息请求头部加上验证信息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过期跳转登录页)相关推荐

  1. dwz ajax session超时跳转登录页(struts2自定义拦截器)

    1.定义struts2拦截器(网上例子很多) 代码如下: package rt.intercepter;import java.util.Map;import javax.servlet.http.H ...

  2. dwz ajax session超时跳转登录页(struts2自定义阻碍器)

    为什么80%的码农都做不了架构师?>>>    培养奇才的先决前提是公共的聪明以前的项目用的是springsecurity3.0,session超时主动跳转的登录页(这个页面可配), ...

  3. session过期跳转登录页面

    2019独角兽企业重金招聘Python工程师标准>>> 项目需要做一个自动登出的功能,查询了网上的资料,一开始准备用session监听做,按照下面方式配置监听器 1.在项目的web. ...

  4. SSM拦截ajax请求判断session过期

    项目使用ssm作为后台框架,需要在后台判断session是否过期,并跳转登录页. 1.定义一个filter,拦截所有的请求. package com.acat.filter;import javax. ...

  5. ajax请求 session过期跳转首页的两种处理方式

    在处理session过期跳转首页时遇到了一些困难,经过百度发现了大致两种方法,在这里进行一下整理: 1.直接重写jquery   ajax方法: (function($){ //备份jquery的aj ...

  6. Ajax Session失效跳转登录页面的方法

    在Struts应用中,我们发出的请求都会经过 相应的拦截器进行相关处理,一般都会有一个用户登录拦截(Session失效拦截):一般请求的话,如果Session失效时,我们会跳到登录页面,可是如果我们采 ...

  7. Shiro session过期跳转到登录页面问题

    Shiro session过期跳转到登录页面问题 shrio的session过期后(工程重启或者用户长时间没进行任何操作),当客户端再次向服务端发起请求时,shrio会判断用户没有登录授权,然后对请求 ...

  8. springMVC session过期跳转到登录界面

    1.非ajax的传统型跳转和ajax请求数据跳转 2.使用springMVC拦截器拦截请求,判断session是否过期 3.使用ajaxSetup 全局判断session请求是否过期. 这种方式不是最 ...

  9. vue---axios拦截器处理登录失效跳转登录页

    axios拦截器(Interceptors)主要分为: (1)请求拦截器:在发送请求前进行拦截,可以根据发送的请求参数做一些发送参数的调整,例如设置headers (2)响应拦截器:在后台返回响应时进 ...

最新文章

  1. iPhone真机调试流程
  2. SAP MM 物料主数据Plant Data Storage 1视图里的Storage Bin
  3. 【数字信号处理】线性常系数差分方程 ( 使用 matlab 求解 “ 线性常系数差分方程 “ 示例 | A 向量分析 | B 向量分析 | 输入序列分析 | matlab 代码 )
  4. 查询数据库表名,数据表信息,MySQL Key值(PRI, UNI, MUL)的含义
  5. android 中国通信乱码问题
  6. 以下python语言关键字在异常处理_【单选题】以下 Python 语言关键字在异常处理结构中用来捕获特定类型异常的选项是: ( )...
  7. 论文落地 101:算法工程化的那些坑
  8. 重学java基础第四课:关于教育和对大家的期望
  9. mysql insert 不需要日志_详解MySQL|你不知道的新特性-8.0错误日志增强
  10. select2控件动态更新option
  11. vue 父子组件传值以及方法调用,平行组件之间传值以及方法调用大全
  12. 活动回顾 | 智慧城市的发展趋势与挑战
  13. Linux编程获取本机IP地址
  14. ndroid分辨率 dpi 屏幕尺寸 对比图
  15. 原型设计之Axure RP
  16. 海思 3559 SVP NNIE demo解读
  17. 春天里,阳光下,无限的哀思和想念
  18. 用python做动画的代码_Python应用 | 三行代码实现GIF动画
  19. 项目:金融行业反欺诈模型
  20. 仿八大行星绕太阳3D旋转效果

热门文章

  1. MK-TD环保型铝合金脱模剂
  2. TQM 6支柱7原则
  3. excel中如何输入数组公式详细介绍
  4. 模糊逻辑学习--什么是模糊逻辑
  5. 快递企业下一步:国际化、多元化,发展科技提升竞争力
  6. Debian10.x环境下安装 ProxMox VE 6.x(PVE)全教程
  7. 超黑光摄像机可以有多“黑“?
  8. 【Linux】VNC xfc4安装指导
  9. java公众号图片上传_java微信公众号上传下载图片,springmvc demo
  10. ue4和Airsim仿真无人机,键盘控制无人机运动