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 相关文章推荐
js获取单选按钮的数据
Nov 27 Javascript
javascript数字时钟示例分享
Apr 23 Javascript
jQuery焦点图切换特效代码分享
Sep 15 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
js实现背景图自适应窗口大小
Jan 10 Javascript
jquery中封装函数传递当前元素的方法示例
May 05 jQuery
使用cropper.js裁剪头像的实例代码
Sep 29 Javascript
AngularJS 表单验证手机号的实例(非必填)
Nov 12 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
May 07 Javascript
对类Vue的MVVM前端库的实现代码
Sep 07 Javascript
vue中的ref和$refs的使用
Nov 22 Javascript
微信小程序导航栏跟随滑动效果的实现代码
May 14 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
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
基于python神经卷积网络的人脸识别
2018/05/24 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
巴西购物网站:Estrela10
2018/12/13 全球购物
教师个人自我鉴定
2014/02/08 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
胡桃夹子观后感
2015/06/11 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript
教你怎么用python实现字符串转日期
2021/05/24 Python
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
Python编写冷笑话生成器
2022/04/20 Python
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers
Python实现双向链表
2022/05/25 Python
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python