Vue实现数据请求拦截


Posted in Javascript onOctober 23, 2019

本文实例为大家分享了vue数据请求拦截的具体代码,供大家参考,具体内容如下

在src文件夹下创建utils文件夹

Vue实现数据请求拦截

同时在文件夹下创建request.js和auth.js文件

request.js为请求拦截、请求数据封装主入口
auth.js为设置token和删除token及判断用户是否登录封装主入口 

auth.js (封装token)

export function isLogin() {
  if (localStorage.getItem('token')) {
   return true;
  } else {
   return false;
  }
 }
 export function getToken() {
  return localStorage.getItem('token');
 }
 export function setToken(token) {
  localStorage.setItem('token', token);
 }
 
 export function removeToken() {
  localStorage.removeItem('token');
 }

下载axios(命令: npm install axios --save-dev)、同时引入axios、getToken

import axios from 'axios';
import { getToken } from './auth';

创建实例:传两个参数(timeout(超时时间)、baseUrl(服务器路径))

const instance = axios.create({
   timeout: 5000,
   baseURL: 'https://xxxxxxxxx/xxxx/',
 });

请求拦截

// 请求拦截
 instance.interceptors.request.use(
  function(config) {
   // eslint-disable-next-line prettier/prettier
   config.headers.authorization = 'Bearer ' + getToken();
   return config;
  },
  function(error) {
   // Do something with request error
   return Promise.reject(error);
  }
 );
 
 instance.interceptors.response.use(
  response => {
   return response;
  },
  error => {
   if (error.response.status == 401) {
    window.location.href = '/#/login';
   }
   if (error.response.status == 404) {
    window.location.href = '/404.html';
   }
   return Promise.reject(error.response.data);
  }
 );

请求封装

/**
  * 获取数据 get请求
  * @param {*} url
  * @param {*} config
  */
 export const get = (url, config) => instance.get(url, config);
 
 /**
  * post请求
  * @param {*} url
  * @param {*} data
  * @param {*} config
  */
 export const post = (url, data) => instance.post(url, data);
 /**
  * put
  * @param {*} url
  * @param {*} data
  * @param {*} config
  */
 export const put = (url, data, config) => instance.put(url, data, config);
 
 /**
  * delete
  * @param {*} url
  * @param {*} config
  */
 export const remove = (url, config) => instance.delete(url, config);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery live( type, fn ) 委派事件实现
Oct 11 Javascript
JQueryEasyUI datagrid框架的基本使用
Apr 08 Javascript
基于JavaScript 类的使用详解
May 07 Javascript
jquery复选框多选赋值给文本框的方法
Jan 27 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
Oct 29 Javascript
JavaScript中利用for循环遍历数组
Jan 15 Javascript
Angular 输入框实现自定义验证功能
Feb 19 Javascript
Vue form 表单提交+ajax异步请求+分页效果
Apr 22 Javascript
bootstrap时间插件daterangepicker使用详解
Oct 19 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
Aug 20 Javascript
Vue 3.0中jsx语法的使用
Nov 13 Javascript
JavaScript 如何在浏览器中使用摄像头
Dec 02 Javascript
Vue项目中如何使用Axios封装http请求详解
Oct 23 #Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
Oct 23 #Javascript
原生JS无缝滑动轮播图
Oct 22 #Javascript
Vue实现开心消消乐游戏算法
Oct 22 #Javascript
p5.js码绘“跳动的小正方形”的实现代码
Oct 22 #Javascript
微信小程序绑定手机号获取验证码功能
Oct 22 #Javascript
微信小程序开发之转发分享功能
Oct 22 #Javascript
You might like
php 数组的指针操作实现代码
2011/02/08 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
phpStorm2020 注册码
2020/09/17 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
python3实现猜数字游戏
2020/12/07 Python
Python中os模块功能与用法详解
2020/02/26 Python
在matplotlib中改变figure的布局和大小实例
2020/04/23 Python
工作自我评价分享
2013/12/01 职场文书
法律进企业活动方案
2014/03/04 职场文书
工作评语大全
2014/04/26 职场文书
白莲教口号
2014/06/18 职场文书
庆祝教师节标语
2014/10/09 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers