vue请求拦截器的配置方法是什么
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家介绍vue请求拦截器的配置方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。request.js内容http request请求拦截器和http respon
千家信息网最后更新 2026年11月03日vue请求拦截器的配置方法是什么
这篇文章给大家介绍vue请求拦截器的配置方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

request.js内容
http request请求拦截器和http response服务器响应拦截器配置
// http request 请求拦截器,有token值则配置上token值import axios from 'axios'import Promise from 'promise'import util from './utils';import store from './../store/index';const service = axios.create({ timeout: 60000, // 请求超时时间 headers: { // Authorization: Authorization, 'Content-Type': 'application/json;charset=UTF-8' }});// http请求拦截器service.interceptors.request.use( config => { let tokenExist = util.tokenExist(); if (tokenExist) { // bus.$emit('toggleloading', true)//显示loading //如果token存在 config.headers['Authorization'] = `Bearer ${util.getToken()}`; } // Toast.loading({ // message: '加载中...', // duration: 0, // forbidClick: true // }); return config; }, error => { Promise.reject(error); })// http response 服务器响应拦截器,// 这里拦截401错误,并重新跳入登页重新获取tokenservice.interceptors.response.use( response => { if (response.status === 200) { //通讯成功 // Toast.clear(); /************* * response.data.status === 0 错误 * response.data.status === 100 成功 * response.data.status === 401 token过期 * * *************/ // bus.$emit('toggleloading', false)//隐藏loading if (response.data.state === 401) { //如果是token过期,跳转至登录 Message.error("登录已过期,请重新登录!"); store.commit('SET_TOKEN', ''); util.goLogin(); } else if (response.data.state === 0) { // Message.error(response.data.message); return response.data; } else { return response.data; } } }, error => { //请求失败 // ; const response = error.response; if (response.status === 401) { // Toast.fail(response.data.message); Message.error("登录已过期,请重新登录!"); util.goLogin(); } else if (response.status === 403) { $router.push({ name: '403' }); } else { // Toast.fail(response.data.message ? response.data.message : '系统错误请联系管理员'); // Message.error({ // message: '无服务,请联系管理员' // }); } return Promise.reject(error); });export default service;http.js内容
请求数据方式
import request from './request';// import store from './../store/index';const http = { request(config) { request(config); }, post(url, data) { // if(data instanceof Object){ // }else{ // data = { // ...data // }; // } return request({ url, method: 'post', data }); }, postFile(url, data, contentType) { return request({ url, method: 'post', data, contentType }); }, get(url, params) { return request({ url, method: 'get', params }); }, put(url, data) { return request({ url, method: 'put', data }); }, delete(url) { return request({ url, method: 'delete' }); }, download(url, params) { return request({ url, method: 'get', params, responseType: 'blob' }); }, downloadPost(url, data) { return request({ url, method: 'post', data, responseType: 'blob' }); }};export default http;utils.js内容
获取token,判断token是否存在
import store from '../store/index';let util = { //获取token getToken() { return store.getters.token; }, //判断token是否存在 tokenExist() { let flag; let token = store.getters.token; if (token && token !== '') { flag = true; } else { flag = false; } return token; },}export default util
vuex 仓库配置
vuex 持久化
vuex 模板引用
index.js内容
import Vue from "vue"import Vuex from "vuex"import VuexPersistence from 'vuex-persist';import db from './db'Vue.use(Vuex)//vuex 状态持久化const vuexLocal = new VuexPersistence({ storage:window.localStorage})const store = new Vuex.Store({ state:{}, mutations:{}, actions:{}, modules:{ db }, plugins:[vuexLocal.plugin]})export default storedb.js内容
const db = { state: { token: '', }, getters:{ token:state => state.token }, mutations: { // 存储token setToken: (state, value) => { state.token = value } }, actions: {}}export default db接口封装
import http from "../common/http"/***********登录注册*************/// 测试接口function text(params){ return http.get("api/Test/GetList", params)}//登录 function Login(params) { return http.post("api/Login/Login", params)}// 获取图形验证码function GetValidateCode(params) { return http.post("api/Login/GetValidateCode", params)}// 获取手机验证码 注意:需要提前人机验证后调用 否则有被恶意刷短信的风险function GetPhoneCode(params) { return http.post("api/Login/GetPhoneCode", params)}// 注册 校验信息function RegisterUserVerify(params) { return http.post("api/Login/RegisterUserVerify", params)}// 注册 设置密码 注册用户信息function RegisterUserInfo(params) { return http.post("api/Login/RegisterUserInfo", params)}// 忘记密码 验证姓名手机号function ResetPasswordVerify(params) { return http.post("api/Login/ResetPasswordVerify", params)}// 忘记密码 密码更新function ResetPassWord(params) { return http.post("api/Login/ResetPassWord", params)}export { Login, text, GetPhoneCode, RegisterUserVerify, GetValidateCode, ResetPasswordVerify, ResetPassWord, RegisterUserInfo}关于vue请求拦截器的配置方法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
拦截器
内容
登录
配置
密码
验证
错误
服务
方法
成功
信息
手机
接口
更多
服务器
管理员
帮助
管理
联系
不错
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技名片
上海喔噻互联网科技有限公司
互联网是第几次科技革命的成果
A股互联网金融科技公司
互联网科技公司怎么样
互联网 的科技创新
奇酷互联网络科技
上海亿帐通互联网科技
互联网科技公司招聘
北京三清互联网科技
西藏七维空间互联网科技有限公司
搜狐科技互联网
卓翼科技产业互联网合作
长沙互联网科技
互联网科技包装股份有限公司上市
易租星互联网科技有限公司
长沙易易互联网科技有限公司
上海旺乐尼互联网科技有限公司
广东猫王互联网科技有限公司电话
互联网科技快速发展优美句子
致聘互联网科技
长亮科技 互联网金融
天扬科技互联网广告
济南和联互联网科技有限公司
玖二柒互联网科技公司待遇
中国科技互联网公司收入
互联网时代科技改变生活
互联网科技包装股
广东鹅鹅鹅互联网科技有限公司
青岛互联网科技园