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 相关文章推荐
点图片上一页下一页翻页效果
Jul 09 Javascript
ActiveX控件与Javascript之间的交互示例
Jun 04 Javascript
javascript学习笔记(八)正则表达式
Oct 08 Javascript
JavaScript生成随机字符串的方法
Mar 19 Javascript
javascript实现对表格元素进行排序操作
Nov 18 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
Jun 17 Javascript
Bootstrap图片轮播组件使用实例解析
Jun 30 Javascript
AngularJS教程 ng-style 指令简单示例
Aug 03 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
Sep 24 Javascript
turn.js异步加载实现翻书效果
Jul 25 Javascript
vue实现简单计算商品价格
Sep 14 Javascript
解决pycharm双击但是无法打开的情况
Oct 31 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在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
php+mysql分页代码详解
2008/03/27 PHP
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
PHP游戏编程25个脚本代码
2011/02/08 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
2013/06/25 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
Django数据库表反向生成实例解析
2018/02/06 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
Python微信操控itchat的方法
2019/05/31 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
什么是Rollback Segment
2013/04/22 面试题
大学生工作求职信
2014/06/23 职场文书
避暑山庄导游词
2015/02/04 职场文书
西安大雁塔导游词
2015/02/10 职场文书
2015年医院创卫工作总结
2015/04/22 职场文书
宿舍卫生管理制度
2015/08/05 职场文书