| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> vue中的axios的webpack配置代理以及二次封装 -> 正文阅读 |
|
[JavaScript知识库]vue中的axios的webpack配置代理以及二次封装 |
在项目根目录下 创建 module.exports={ ? ? 注意:配置完之后一定一定要重启项目 axios二次封装(在src路径下的request文件夹下创建http.js)import?axios?from?"axios" import?Vue?from?"vue" import?qs?from?"qs" import?store?from?'../store/index' //?开发环境 let?path if(process.env.NODE_ENV?===?"development"){ ??console.log("开发环境"); ??Vue.prototype.$pre?=?"http://localhost:3000" ??//?path="http://localhost:3000" } //?生产环境 if(process.env.NODE_ENV?===?"production"){ ??console.log("生产环境"); ??Vue.prototype.$pre?=?"" ??//?path="http://localhost:8080" } //?请求拦截器 axios.interceptors.request.use(config=>{ ??//?后台开启了验证,所以每一次请求的时候都需要携带token进行请求 ??//?登录之后才拥有token,所以先判断 ??if(config.url?!==?"/api/userlogin"){ ????//?携带token进行请求 ????config.headers.authorization?=?store.state.user.token ??} ??console.log(config); ??return?config }) //?响应拦截器 axios.interceptors.response.use(res=>{ ??console.group("本次请求的路径是:"?+?res.config.url) ??console.log(res) ??console.groupEnd("拦截器结束") //?判断登录时间是否过期 //?if(res.data.msg?=?"登录已过期或访问权限受限"){ //???//?跳转到登录页重新登录 //???//?window.location?=?path+"/login" //???window.location?=?"http://localhost:8080/login" //?} ??return?res })
/*? ??get请求 ????url???请求地址 ????params??请求参数 */ export?const?get?=?(url,params={})=>{ ??return?new?Promise((resolve,error)=>{ ????axios.get(url,{ ??????params:params ????}).then(res=>{ ??????resolve(res) ????}).catch(err=>{ ??????error(err) ????}) ??}) } /*? ??post请求 ????url???请求地址 ????params??请求参数,如果有就传对象类型,如果没有就不传? ????isFile??是否有文件,如果有就传true,如果没有就不用传 */ export?const?post?=?(url,params={},isFile=false)=>{ ??let?data?=?null ??if(isFile){ ????//?有文件 ????data?=?new?FormData() ????for(let?i?in?params){ ??????data.append(i,params[i]) ????} ??}else{ ????//?无文件 ????data?=?qs.stringify(params) ??} ??return?new?Promise((resolve,error)=>{ ????axios.post(url,data).then(res=>{ ??????resolve(res) ????}).catch(err=>{ ??????error(err) ????}) ??}) } ? 使用 创建一个api.js文件(建议跟http.js文件同一个路径下) import?{get,post}?from?'./http' export?const?menuadd?=?(params)=>?post('/api/menuadd',params) ? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 23:26:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |