广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue如何添加请求拦截器
  • 776
分享到

Vue如何添加请求拦截器

2024-04-02 19:04:59 776人浏览 独家记忆
摘要

小编给大家分享一下Vue如何添加请求拦截器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、现象统一处理错误及配置请求信息二、解

小编给大家分享一下Vue如何添加请求拦截器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、现象

统一处理错误及配置请求信息

二、解决

1、安装 axiOS  , 命令: npm install axios --save-dev

2、在根目录的config目录下新建文件 axios.js  ,内容如下:

import axios from 'axios'
// 配置默认的host,假如你的api host是:Http://api.htmlx.club
axios.defaults.baseURL = 'http://api.htmlx.club' 
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  return config
}, function (error) {
  // 对请求错误做些什么
return Promise.reject(error)
});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error)
});

3、在main.js中进行引用,并配置一个别名($ajax)来进行调用:

import axios from 'axios'
import '../config/axios'
Vue.prototype.$ajax = axios

如图:

4、应用,一个登录的post如:

this.$ajax({
  method: 'post',
  url: '/login',
  data: {
    'userName': 'xxx',
    'passWord': 'xxx'
  }
}).then(res => {
  console.log(res)
})

ps:下面看下vue-resource 拦截器使用

在vue项目使用vue-resource的过程中,临时增加了一个需求,需要在任何一个页面任何一次http请求,增加对token过期的判断,如果token已过期,需要跳转至登录页面。如果要在每个页面中的http请求操作中添加一次判断,那么会是一个非常大的修改工作量。那么vue-resource是否存在一个对于任何一次请求响应捕获的的公共回调函数呢?答案是有的!

vue-resource的interceptors拦截器的作用正是解决此需求的妙方。在每次http的请求响应之后,如果设置了拦截器如下,会优先执行拦截器函数,获取响应体,然后才会决定是否把response返回给

then进行接收。那么我们可以在这个拦截器里边添加对响应状态码的判断,来决定是跳转到登录页面还是留在当前页面继续获取数据。

下边代码添加在main.js中

Vue.http.interceptors.push((request, next) => {
 console.log(this)//此处this为请求所在页面的Vue实例
 // modify request
 request.method = 'POST';//在请求之前可以进行一些预处理和配置
 // continue to next interceptor
  next((response) => {//在响应之后传给then之前对response进行修改和逻辑判断。对于token时候已过期的判断,就添加在此处,页面中任何一次http请求都会先调用此处方法
   response.body = '...';
    return response;
 });
});

在知道此方法之前,鄙人想了一个笨方法,但是也能在一定程度上降低修改工作量。方法是为Vue绑定一个this.$$http.get方法取代this.$http.get方法,每个页面的http请求添加个$在$http前即可。

// ajax.js
function plugin(Vue){
 Object.defineProperties(Vue.prototype,{
  $$http:{
   get(){
    return option(Vue);
   }
  }
 })
}
function option(Vue){
 let v = new Vue();
 return {
  get(a,b){
   let promise = new Promise(function(reslove,reject){
    v.$http.get(a,b).then((res)=>{
     reslove(res)
    },(err)=>{
            //处理token过期问题。
    })
   })
   return promise;
  }
 }
}
module.exports=plugin;
//main.js
import ajax from './ajax.js'
Vue.use(ajax)

以上是“Vue如何添加请求拦截器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网JavaScript频道!

--结束END--

本文标题: Vue如何添加请求拦截器

本文链接: https://www.lsjlt.com/news/76917.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue如何添加请求拦截器
    小编给大家分享一下Vue如何添加请求拦截器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、现象统一处理错误及配置请求信息二、解...
    99+
    2022-10-19
  • vue中Axios如何添加拦截器刷新token
    这篇文章将为大家详细讲解有关vue中Axios如何添加拦截器刷新token,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Axios是一款网络前端请求框架,基本用法如下:1. Axios基本用法: ...
    99+
    2023-06-29
  • vue中怎么实现一个路由拦截器和请求拦截器
    本篇文章给大家分享的是有关vue中怎么实现一个路由拦截器和请求拦截器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。路由拦截器已路由为导向rou...
    99+
    2022-10-19
  • vue 请求拦截器的配置方法详解
    按如下步骤进行 1.request.js内容:http request请求拦截器和http response服务器响应拦截器配置 2.http.js内容:请求数据方式封装 3.uti...
    99+
    2022-11-12
  • Router如何添加路由拦截
    这篇“Router如何添加路由拦截”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Router如何添加路由拦截”文章吧。一、安...
    99+
    2023-07-05
  • react axios请求拦截如何实现
    这篇“react axios请求拦截如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react axios请求拦截如何...
    99+
    2023-07-04
  • vue请求拦截器的配置方法是什么
    这篇文章给大家介绍vue请求拦截器的配置方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。request.js内容http request请求拦截器和http response服务器响应拦截器配置// ...
    99+
    2023-06-22
  • vue axios拦截器常用之重复请求取消
    引言 上一篇介绍了axios的简单封装,知道了axios拦截器的应用场景和方法,今天来看一下对于响应时间过长且请求次数过高的情况拦截器如何处理。 取消请求的方法 Axios使用内部...
    99+
    2022-11-12
  • 如何拦截post请求的xss攻击
    拦截post请求xss攻击的方法:编写一个Filter过滤器进行拦截,例如:public class RequestXssFilter implements Filter {FilterCo...
    99+
    2022-10-11
  • Springboot如何利用拦截器拦截请求信息收集到日志详解
    目录1、需求2、问题2、获取1)导入依赖为了获取客户端类型、操作系统类型、ip、port2)封装获取body字符串的工具类3)拦截器类4)继承 HttpServletRequestW...
    99+
    2022-11-12
  • Vue如何使用axios添加请求头
    这篇“Vue如何使用axios添加请求头”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue如何使用axios添加请求头”文...
    99+
    2023-06-30
  • vue中Axios添加拦截器刷新token的实现方法
    目录1. Axios基本用法:2. Axios基本封装用法:3. 添加拦截器的用法4. 注意事项:Axios是一款网络前端请求框架,基本用法如下: 1. Axios基本用法: ...
    99+
    2022-11-13
  • 使用Filter拦截器如何实现请求跨域转发
    目录Filter拦截器实现请求跨域转发在使用Filter实现转发后特做一次记录使用filter解决跨域在web.xml配置拦截器过滤器代码Filter拦截器实现请求跨域转发 因为公司...
    99+
    2022-11-12
  • vue中怎么利用axios实现一个登录请求拦截器
    vue中怎么利用axios实现一个登录请求拦截器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.安装配置axioscnpm install ...
    99+
    2022-10-19
  • Spring Cloud gateway 网关如何拦截Post请求日志
    gateway版本是 2.0.1 1.pom结构 (部分内部项目依赖已经隐藏) <dependency> <groupId>org.springf...
    99+
    2022-11-12
  • angular如何使用拦截器统一处理http请求和响应
    这篇文章给大家分享的是有关angular如何使用拦截器统一处理http请求和响应的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。想使用angularjs里的htpp向后台发送请求,...
    99+
    2022-10-19
  • SpringBoot如何使用Aspect切面拦截打印请求参数
    这篇文章主要介绍“SpringBoot如何使用Aspect切面拦截打印请求参数”,在日常操作中,相信很多人在SpringBoot如何使用Aspect切面拦截打印请求参数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-20
  • vue中如何使用Vue.http.interceptors.push拦截器
    这期内容当中小编将会给大家带来有关vue中如何使用Vue.http.interceptors.push拦截器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。import&n...
    99+
    2022-10-19
  • swagger中如何给请求添加header
    目录如何给请求添加header1.后台代码如下2.添加后的swagger中接口样式如下swagger添加头部参数1.代码截图2.使用代码3.swagger文档说明截图显示4.swag...
    99+
    2022-11-13
  • 在springboot中如何给mybatis加拦截器
    目录1、实现Interceptor接口,并添加拦截注解 @Intercepts1.在mybatis中可被拦截的类型有四种(按照拦截顺序)2.各个参数的含义2、在配置文件中添加拦截器(...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作