返回顶部
首页 > 资讯 > 前端开发 > 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://lsjlt.com/news/76917.html(转载时请注明来源链接)

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

猜你喜欢
  • Vue如何添加请求拦截器
    小编给大家分享一下Vue如何添加请求拦截器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、现象统一处理错误及配置请求信息二、解...
    99+
    2024-04-02
  • vue中Axios如何添加拦截器刷新token
    这篇文章将为大家详细讲解有关vue中Axios如何添加拦截器刷新token,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Axios是一款网络前端请求框架,基本用法如下:1. Axios基本用法: ...
    99+
    2023-06-29
  • vue的请求拦截是什么
    前言随着前端技术的日新月异,前端框架也越来越多样化,Vue.js 作为一款流行的前端 MVVM 框架,不断地吸引着新的开发者加入到 Vue.js 的阵营中来。在 Vue.js 中,我们经常会用到 AJAX 请求来从服务器获取数据,但是在发送...
    99+
    2023-05-18
  • vue中怎么实现一个路由拦截器和请求拦截器
    本篇文章给大家分享的是有关vue中怎么实现一个路由拦截器和请求拦截器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。路由拦截器已路由为导向rou...
    99+
    2024-04-02
  • react axios请求拦截如何实现
    这篇“react axios请求拦截如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react axios请求拦截如何...
    99+
    2023-07-04
  • Router如何添加路由拦截
    这篇“Router如何添加路由拦截”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Router如何添加路由拦截”文章吧。一、安...
    99+
    2023-07-05
  • vue 请求拦截器的配置方法详解
    按如下步骤进行 1.request.js内容:http request请求拦截器和http response服务器响应拦截器配置 2.http.js内容:请求数据方式封装 3.uti...
    99+
    2024-04-02
  • 如何拦截post请求的xss攻击
    拦截post请求xss攻击的方法:编写一个Filter过滤器进行拦截,例如:public class RequestXssFilter implements Filter {FilterCo...
    99+
    2024-04-02
  • Vue如何使用axios添加请求头
    这篇“Vue如何使用axios添加请求头”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue如何使用axios添加请求头”文...
    99+
    2023-06-30
  • vue中axios请求拦截的示例分析
    这篇文章主要介绍vue中axios请求拦截的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!axios 简介axios 是一个基于Promise 用于浏览器和 nodejs 的...
    99+
    2024-04-02
  • vue怎么实现请求拦截白名单
    前言在使用 Vue 进行开发的过程中,我们会遇到需要对网络请求进行拦截的情况,并且还需要排除一些请求不受拦截,即白名单。这篇文章将介绍 Vue 请求拦截白名单实现的方法。正文在使用 Vue 进行开发时,我们通常会使用 axios 发送网络请...
    99+
    2023-05-14
  • vue axios拦截器常用之重复请求取消
    引言 上一篇介绍了axios的简单封装,知道了axios拦截器的应用场景和方法,今天来看一下对于响应时间过长且请求次数过高的情况拦截器如何处理。 取消请求的方法 Axios使用内部...
    99+
    2024-04-02
  • vue请求拦截器的配置方法是什么
    这篇文章给大家介绍vue请求拦截器的配置方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。request.js内容http request请求拦截器和http response服务器响应拦截器配置// ...
    99+
    2023-06-22
  • Springboot如何利用拦截器拦截请求信息收集到日志详解
    目录1、需求2、问题2、获取1)导入依赖为了获取客户端类型、操作系统类型、ip、port2)封装获取body字符串的工具类3)拦截器类4)继承 HttpServletRequestW...
    99+
    2024-04-02
  • Spring MVC拦截器和跨域请求
    一、拦截器简介 SpringMVC的拦截器(Interceptor)也是AOP思想的一种实现方式。它与Servlet的过滤器(Filter)功能类似,主要用于拦截用户的请求并做相应的处理,通常应用在权限验证、记录请求信息的日志、判断...
    99+
    2023-09-16
    java maven spring mvc
  • 使用Filter拦截器如何实现请求跨域转发
    目录Filter拦截器实现请求跨域转发在使用Filter实现转发后特做一次记录使用filter解决跨域在web.xml配置拦截器过滤器代码Filter拦截器实现请求跨域转发 因为公司...
    99+
    2024-04-02
  • Spring Cloud gateway 网关如何拦截Post请求日志
    gateway版本是 2.0.1 1.pom结构 (部分内部项目依赖已经隐藏) <dependency> <groupId>org.springf...
    99+
    2024-04-02
  • vue中Axios添加拦截器刷新token的实现方法
    目录1. Axios基本用法:2. Axios基本封装用法:3. 添加拦截器的用法4. 注意事项:Axios是一款网络前端请求框架,基本用法如下: 1. Axios基本用法: ...
    99+
    2024-04-02
  • 如何拦截vue渲染
    随着Vue的广泛应用和越来越多的前端工程师对Vue的了解和掌握,Vue的渲染机制也变得越来越重要。渲染是Vue应用程序的核心,它是将数据绑定到视图的过程。然而,在实际的开发过程中,我们可能需要进行拦截Vue渲染的操作,以优化性能或对数据进行...
    99+
    2023-05-18
  • vue中怎么利用axios实现一个登录请求拦截器
    vue中怎么利用axios实现一个登录请求拦截器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.安装配置axioscnpm install ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作