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 相关文章推荐
showModelessDialog()使用详解
Sep 21 Javascript
JavaScript 变量命名规则
Sep 23 Javascript
CheckBoxList多选样式jquery、C#获取选择项
Sep 06 Javascript
jQuery中多个元素的Hover事件解决方案
Jun 12 Javascript
jquery中each方法示例和常用选择器
Jul 08 Javascript
js判断checkbox是否选中个数的方法(超简单)
Aug 19 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
Oct 15 Javascript
js 点击a标签 获取a的自定义属性方法
Nov 21 Javascript
AngularJS实现表格的增删改查(仅限前端)
Jul 04 Javascript
bootstrap Table插件使用demo
Aug 07 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
Sep 21 Javascript
vue elementUI使用tabs与导航栏联动
Jun 21 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
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
smarty中js的调用方法示例
2014/10/27 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
ajax请求get与post的区别总结
2013/11/04 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
python类装饰器用法实例
2015/06/04 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
Python函数和模块的使用总结
2019/05/20 Python
python里 super类的工作原理详解
2019/06/19 Python
Django之路由层的实现
2019/09/09 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
python关于倒排列的知识点总结
2020/10/13 Python
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
讲座主持词
2014/03/20 职场文书
小班幼儿评语大全
2014/04/30 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
学习经验交流会总结
2015/11/02 职场文书