vue axios请求拦截实现思路(附代码)

这次给大家带来vue axios请求拦截实现思路(附代码),实现vue axios请求拦截的注意事项有哪些,下面就是实战案例,一起来看一下。

axios 简介

axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:

从浏览器中创建 XMLHttpRequest
从 node.js 发出 http 请求
支持 Promise API
拦截请求和响应
转换请求和响应数据
取消请求
自动转换JSON数据
客户端支持防止 CSRF/XSRF

下面代码给大家介绍vue axios 请求拦截,具体代码如下所示:

import axios from 'axios';//引入axios依赖import { Message } from 'element-ui';import Cookies from 'js-cookie'; //引入cookie操作依赖import router from '@/router/index'//引入路由对象axios.defaults.timeout = 5000;axios.defaults.baseURL ='';//http request 封装请求头拦截器axios.interceptors.request.use(  config => {    var token = ''    if(typeof Cookies.get('user') === 'undefined'){      //此时为空    }else {      token = JSON.parse(Cookies.get('user')).token    }//注意使用的时候需要引入cookie方法,推荐js-cookie    config.data = JSON.stringify(config.data);    config.headers = {      'Content-Type':'application/json'    }    if(token != ''){     config.headers.token = token;    }    return config;  },  error => {    return Promise.reject(err);  });//http response 封装后台返回拦截器axios.interceptors.response.use(  response => {    //当返回信息为未登录或者登录失效的时候重定向为登录页面    if(response.data.code == 'W_100004' || response.data.message == '用户未登录或登录超时,请登录!'){      router.push({        path:"/",        querry:{redirect:router.currentRoute.fullPath}//从哪个页面跳转      })    }    return response;  },  error => {    return Promise.reject(error)  })/** * 封装get方法 * @param url * @param data * @returns {Promise} */export function fetch(url,params={}){  return new Promise((resolve,reject) => {    axios.get(url,{      params:params    })      .then(response => {        resolve(response.data);      })      .catch(err => {        reject(err)      })  })}/** * 封装post请求 * @param url * @param data * @returns {Promise} */export function post(url,data = {}){  return new Promise((resolve,reject) => {    axios.post(url,data)      .then(response => {        resolve(response.data);      },err => {        reject(err)      })  })}/** * 封装导出Excal文件请求 * @param url * @param data * @returns {Promise} */export function exportExcel(url,data = {}){  return new Promise((resolve,reject) => {    axios({      method: 'post',      url: url, // 请求地址      data: data, // 参数      responseType: 'blob' // 表明返回服务器返回的数据类型    })    .then(response => {      resolve(response.data);      let blob = new Blob([response.data], {type: "application/vnd.ms-excel"});      let fileName = "订单列表_"+Date.parse(new Date())+".xls" ;      if (window.navigator.msSaveOrOpenBlob) {        navigator.msSaveBlob(blob, fileName);      } else {        var link = document.createElement('a');        link.href = window.URL.createObjectURL(blob);        link.download = fileName;        link.click();        window.URL.revokeObjectURL(link.href);      }    },err => {      reject(err)    })  })}/** * 封装patch请求 * @param url * @param data * @returns {Promise} */export function patch(url,data = {}){  return new Promise((resolve,reject) => {    axios.patch(url,data)      .then(response => {        resolve(response.data);      },err => {        reject(err)      })  })}/** * 封装put请求 * @param url * @param data * @returns {Promise} */export function put(url,data = {}){  return new Promise((resolve,reject) => {    axios.put(url,data)      .then(response => {        resolve(response.data);      },err => {        reject(err)      })  })}

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

vue.js树形控件使用详解

vue全局与局部组件使用步骤详解

以上就是vue axios请求拦截实现思路(附代码)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2766748.html

(0)
上一篇 2025年3月8日 11:25:15
下一篇 2025年2月25日 15:35:19

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • axios请求如何跨域

    这次给大家带来axios请求如何跨域,axios请求跨域的注意事项有哪些,下面就是实战案例,一起来看一下。 vue-cli axios请求方式以及跨域处理 安装axios cnpm install axios –save 登录后复制 在要…

    编程技术 2025年3月8日
    200
  • 右侧带索引通讯录实现(附代码)

    这次给大家带来右侧带索引通讯录实现(附代码),右侧带索引通讯录实现的注意事项有哪些,下面就是实战案例,一起来看一下。 通过jquery.charfirst.pinyin.js实现点击字母自动定位。实现动态加载通讯录数据。 主要代码如下: 通…

    2025年3月8日 编程技术
    200
  • 不使用router-link实现页面跳转

    这次给大家带来不使用router-link实现页面跳转,不使用router-link实现页面跳转的注意事项有哪些,下面就是实战案例,一起来看一下。 1、给父页面跳转的地方设置事件 //原来的页面上展示的信息 编辑 //带参数进行编辑 删除 …

    2025年3月8日
    200
  • axios出现302状态码怎么处理

    这次给大家带来axios出现302状态码怎么处理,axios出现302状态码处理的注意事项有哪些,下面就是实战案例,一起来看一下。 比如说浏览器打开了一个单页面(SPA)应用,过了一段时间token(或者session)过期了,这个时候页面…

    编程技术 2025年3月8日
    200
  • Vue2路由导航与axios拦截器封装

    这次给大家带来Vue2路由导航与axios拦截器封装,Vue2路由导航与axios拦截器封装的注意事项有哪些,下面就是实战案例,一起来看一下。 1.写在前面 最近在学习Vue2,遇到有些页面请求数据需要用户登录权限、服务器响应不符预期的问题…

    编程技术 2025年3月8日
    200
  • node+token实现验证

    这次给大家带来node+token实现验证,node+token实现验证的注意事项有哪些,下面就是实战案例,一起来看一下。 最近研究了下基于token的身份验证,并将这种机制整合在个人项目中。现在很多网站的认证方式都从传统的seesion+…

    编程技术 2025年3月8日
    200
  • vue下拉列表实现方法

    这次给大家带来vue下拉列表实现方法,vue下拉列表实现的注意事项有哪些,下面就是实战案例,一起来看一下。 喜欢的请反手来个star,有issue的欢迎提出 安装 cnpm install vue-droplist –save 登录后复制…

    2025年3月8日
    200
  • JS怎样实现运算符重载

    这次给大家带来JS怎样实现运算符重载,JS实现运算符重载的注意事项有哪些,下面就是实战案例,一起来看一下。 最近要做数据处理,自定义了一些数据结构,比如Mat,Vector,Point之类的,对于加减乘除之类的四则运算还要重复定义,代码显得…

    编程技术 2025年3月8日
    400
  • 热模块替换有哪几种实现方法

    这次给大家带来热模块替换有哪几种实现方法,热模块替换的注意事项有哪些,下面就是实战案例,一起来看一下。 稍微研究了一下,发现在angular/cli创建的项目中,实现这个不算太难,步骤如下: 1、首先创建一个src/environments…

    编程技术 2025年3月8日
    200
  • vue实现三级联动

    这次给大家带来vue实现三级联动,vue实现三级联动的注意事项有哪些,下面就是实战案例,一起来看一下。 1、实际效果 地址三级联动 mint-ui picker.png 2、首先你需要去下载一个包含中国省份,城市,区县的数据 如下:(这个地…

    2025年3月8日
    200

发表回复

登录后才能评论