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实现checkBox的全选,反选与赋值
Mar 12 Javascript
深入探寻seajs的模块化与加载方式
Apr 14 Javascript
JS+CSS相对定位实现的下拉菜单
Oct 06 Javascript
javascript事件委托的用法及其好处简析
Apr 04 Javascript
node.js 动态执行脚本
Jun 02 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
Apr 08 Javascript
AngularJs中$cookies简单用法分析
May 30 Javascript
JavaScript中的this原理及6种常见使用场景详解
Feb 14 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
Vue 中如何将函数作为 props 传递给组件的实现代码
May 12 Javascript
vue中路由跳转不计入history的操作
Sep 21 Javascript
Vue select 绑定动态变量的实例讲解
Oct 22 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实现无限级分类实现代码(递归方法)
2011/01/01 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
最简单的tab切换实例代码
2016/05/13 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
原生javascript实现连连看游戏
2019/01/03 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
Python实现大文件排序的方法
2015/07/10 Python
python3 读写文件换行符的方法
2018/04/09 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
Python进度条的制作代码实例
2019/08/31 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
聊聊python中的异常嵌套
2020/09/01 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
采购部部门职责
2013/12/15 职场文书
个人评语大全
2014/05/04 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
党性心得体会
2014/09/03 职场文书
竞选学委演讲稿
2014/09/13 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
升学宴学生致辞
2015/07/27 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers