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 相关文章推荐
用javascript实现的仿Flash广告图片轮换效果
Apr 24 Javascript
Mac地址验证的javascript代码
Nov 09 Javascript
js通过八个点 拖动改变div大小的实现方法
Mar 05 Javascript
JS实现距离上次刷新已过多少秒示例
May 23 Javascript
jquery datatable后台封装数据示例代码
Aug 07 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
jQuery scrollFix滚动定位插件
Apr 01 Javascript
使用window.prompt()实现弹出用户输入的对话框
Apr 13 Javascript
angular或者js怎么确定选中ul中的哪几个li
Aug 16 Javascript
JS实现关闭小广告特效
Jan 29 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
May 13 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
Aug 13 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
PHP4与PHP5的时间格式问题
2008/02/17 PHP
php根据年月获取季度的方法
2014/03/31 PHP
php中的动态调用实例分析
2015/01/07 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python里disconnect UDP套接字的方法
2015/04/23 Python
Python3里的super()和__class__使用介绍
2015/04/23 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
Python 操作MySQL详解及实例
2017/04/30 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
python 使用pandas计算累积求和的方法
2019/02/08 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
《长城》教学反思
2014/02/14 职场文书
职工代表大会主持词
2014/04/01 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis