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实现搜索列表内容

vue+axios表单中上传图片步骤详解

以上就是vue+axios如何实现请求拦截功能的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 09:58:03
下一篇 2025年3月8日 09:58:10

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

相关推荐

  • 用a=a&b=b实现vue里post请求

    这次给大家带来用a=a&b=b实现vue里post请求,用a=a&b=b实现vue里post请求的注意事项有哪些,下面就是实战案例,一起来看一下。 vue开发过程中,总会碰到一些问题,当然任何问题都不能阻止我们前进的脚步,话…

    编程技术 2025年3月8日
    200
  • 实现ajax发送异步请求(图文教程)

    这篇文章主要教大家轻松实现ajax发送异步请求,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ajax发送异步请求,供大家参考,具体内容如下 第一步(得到XMLHttpRequest) ajax其实只需要学习一个对象:XMLHttpRe…

    编程技术 2025年3月8日
    200
  • ajax前台后台跨域请求处理方式(图文教程)

    本篇文章通过前台跨域请求处理以及后台跨域的数据处理方式介绍,详细分析了ajax跨域的问题,对此有需要的朋友学习下。 跨域请求需要借助后台代码接收callback回调函数,对json数据进行进一步处理;前台再用ajax请求向服务器发送call…

    编程技术 2025年3月8日
    200
  • AJAX请求队列实现

    这篇文章主要为大家详细介绍了ajax请求队列的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 AJAX在使用的过程中会遇到一个问题,当用户短时间内执行了多个异步请求的时候,如果前一个请求没完成,将会被取消执行最新的一个请求,大多…

    编程技术 2025年3月8日
    200
  • 浅谈ajax请求技术

    下面我就为大家带来一篇浅谈ajax请求技术。现在就分享给大家,也给大家做个参考。 1.写在前面: 阅读要求: 具有一定的HTML、CSS、JavaScript、Json基础 2.什么是ajax Ajax:即”Asynchronous Jav…

    2025年3月8日
    200
  • Ajax发送和接收请求

    这篇文章主要为大家详细介绍了ajax发送和接收请求的相关资料,感兴趣的小伙伴们可以参考一下 首先Ajax的不刷新页面提交数据,现在应用非常广泛,废话不多说马上进主题!! 基本上浏览器能接收的信息,Ajax都可以接收,ex:字符串,html标…

    编程技术 2025年3月8日
    200
  • 基于iframe实现ajax跨域请求 获取网页中ajax数据

    这篇文章主要介绍了基于iframe实现ajax跨域请求,并获取网页中ajax数据,如何利用网页ajax请求暴露出来的接口去抓取网页数据?需要的朋友可以参考下 大家都知道,在不同域的情况下是不能发送ajax请求的,浏览器会报如下错误: 同时,…

    2025年3月8日 编程技术
    200
  • 防止重复发送Ajax请求的解决方案

    这篇文章主要介绍了防止重复发送ajax请求的解决方案,感兴趣的小伙伴们可以参考一下 在页面中有多个按钮,点击该按钮可以异步的去服务端读取数据,然后在前端将数据展示出来。 每个按钮点击请求的页面都是同一个,但是请求的参数不同,所以返回的内容就…

    编程技术 2025年3月8日
    200
  • 服务端配置实现AJAX跨域请求

    这篇文章主要介绍了服务端配置实现ajax跨域请求的相关资料,需要的朋友可以参考下 一直以为AJAX跨域是无法逾越的鸿沟,最近发现原来在服务端可以通过发送header信息来允许AJAX跨域请求。 PHP代码示例: header(‘Access…

    编程技术 2025年3月8日
    200
  • Ajax请求内嵌套Ajax请求示例代码

    把全国省市的两个xml文件整合成一个json格式的数据,就想到了用ajax嵌套的方法来解决,查找资料,加个async:false这个ajax参数就行了 前段时间做项目,需要把全国省市的两个XML文件整合成一个JSON格式的数据,手写的话觉得…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论