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 相关文章推荐
你需要知道的JavsScript可以做什么?
Jun 29 Javascript
有关于JS辅助函数inherit()的问题
Apr 07 Javascript
JavaScript中三种异步上传文件方式
Mar 06 Javascript
浅谈html转义及防止javascript注入攻击的方法
Dec 04 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
Dec 27 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
May 19 Javascript
Vue.js用法详解
Nov 13 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
Dec 18 Javascript
除Console.log()外更多的Javascript调试命令
Jan 24 Javascript
vue.js单文件组件中非父子组件的传值实例
Sep 13 Javascript
微信小程序实现拍照画布指定区域生成图片
Jul 18 Javascript
如何正确理解vue中的key详解
Nov 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
DOMXML函数笔记
2006/10/09 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
python里将list中元素依次向前移动一位
2014/09/12 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
Python如何省略括号方法详解
2020/03/21 Python
python使用建议技巧分享(三)
2020/08/18 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
建筑工程专业学生的自我评价
2013/12/25 职场文书
母亲节感恩寄语
2014/02/21 职场文书
制作部班长职位说明书
2014/02/26 职场文书
房产委托公证书
2014/04/08 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python
总结python多进程multiprocessing的相关知识
2021/06/29 Python