在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js中。他有很多优秀的特性,例如拦截请求和响应、取消请求、转换json、客户端防御cSRF等。所以我们的尤大大也是果断放弃了对其官方库vue-resource的维护,直接推荐我们使用axios库。如果还对axios不了解的,可以移步axios文档。
安装
npm install axios; // 安装axios
好了,下面开始今天的正文。
此次封装用以解决: (对于登录功能的可以直接使用,其他网络请求也可以直接用,如果有洁癖,可以把token有关的几行代码删掉)
ps:使用时得的引入axios时: import axios from '这个文件的名字及相对路径'
- 接受后台token
- post参数自动转换,省略qs.stringify()
- 后台token过期之后自动清除本地数据,以便下次再次输入账号密码
- 更好的错误提示信息
/** * 封装网络请求 */ import axios from "axios" import qs from "querystring" import store from '../store' import router from '../router' //token过期之后重新回登录界面 const toLogin = () =>{ router.push("/login") } // 错误信息响应方法 const errroHandle = (status,other) => { switch(status){ case 400: console.log("服务器无法理解请求信息"); break; case 401: console.log("用户信息验证失败"); localStorage.removeItem("token"); // 可选项 toLogin(); break; case 403: console.log("请求被限制"); localStorage.removeItem("token"); // 可选项 toLogin(); break; case 404: console.log("客户端请求信息错误"); break; default: console.log(other); break; } } // 创建axios对象 const instance = axios.create({ timeout:5000 }) // 挂在全局对象 instance.defaults.baseUrl = ""; instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; // 拦截器:请求拦截和响应拦截 post请求参数需要转码 // axios的返回值对象要求是一个promise对象 instance.interceptors.request.use(config =>{ if(config.method === "post"){ config.data = qs.stringify(config.data) } if(store.state.token){ config.headers.authorization = store.state.token; } return config; },error => Promise.reject(error)) instance.interceptors.response.use( // 成功 response => response.status === 200 "请求被中断"); } } ) export default instance
总结
以上所述是小编给大家介绍的封装一下vue中的axios示例代码详解,希望对大家有所帮助!
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月15日
2024年11月15日
- 黄乙玲1988-无稳定的爱心肝乱糟糟[日本东芝1M版][WAV+CUE]
- 群星《我们的歌第六季 第3期》[320K/MP3][70.68MB]
- 群星《我们的歌第六季 第3期》[FLAC/分轨][369.48MB]
- 群星《燃!沙排少女 影视原声带》[320K/MP3][175.61MB]
- 乱斗海盗瞎6胜卡组推荐一览 深暗领域乱斗海盗瞎卡组分享
- 炉石传说乱斗6胜卡组分享一览 深暗领域乱斗6胜卡组代码推荐
- 炉石传说乱斗本周卡组合集 乱斗模式卡组最新推荐
- 佟妍.2015-七窍玲珑心【万马旦】【WAV+CUE】
- 叶振棠陈晓慧.1986-龙的心·俘虏你(2006复黑限量版)【永恒】【WAV+CUE】
- 陈慧琳.1998-爱我不爱(国)【福茂】【WAV+CUE】
- 咪咕快游豪礼放送,百元京东卡、海量欢乐豆就在咪咕咪粉节!
- 双11百吋大屏焕新“热”,海信AI画质电视成最大赢家
- 海信电视E8N Ultra:真正的百吋,不止是大!
- 曾庆瑜1990-曾庆瑜历年精选[派森][WAV+CUE]
- 叶玉卿1999-深情之选[飞图][WAV+CUE]