vue搭建项目之设置axios
Posted 疯癫释流年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue搭建项目之设置axios相关的知识,希望对你有一定的参考价值。
首先要下载axios:
npm install axios -S
要注意的是,axios不支持Vue.use();这种方式,可以改写原型链。
第二步就是新建axios存放位置:
在项目中src中单独建立一个axios的文件夹,并在main.js中引入:
第三步对axios进行封装:
封装方法网上一大堆。本次封装如下:
在axios.js中封装的是一些获取数据方法,如:
最后声明方式:
Vue.prototype.$get = get; Vue.prototype.$post = post; Vue.prototype.$put = put; Vue.prototype.$delete = remove;
在http-status.js中设置code:
module.exports = function (error) { let message = \'\'; switch (error.response.status) { case 400: message = \'请求错误\'; break; case 401: message = \'未授权,请登录\'; break; case 403: message = \'拒绝访问\'; break; case 404: message = \'请求地址错误\'; break; case 405: message = \'请求方式错误\'; break; case 408: message = \'请求超时\'; break; case 500: message = \'服务器错误\'; break; case 501: message = \'服务未实现\'; break; case 502: message = \'网关错误\'; break; case 503: message = \'服务不可用\'; break; case 504: message = \'网关超时\'; break; default: message = \'http版本不受支持\'; break; } return message; }
在index.js中配置axios拦截器:
import axios from \'axios\'; import status from \'./http-status\'; import \'./axios\'; import Vue from \'vue\'; // 全局的axios默认值 axios.defaults.baseURL = process.env.BASE_URL; axios.defaults.headers.put[\'Content-Type\'] = \'application/json\'; // 超时设置 // axios.defaults.timeout = 2500; // 添加请求拦截器 axios.interceptors.request.use(function (config) { // 在发送请求之前做些什么 return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); }); // 添加响应拦截器 axios.interceptors.response.use(function (response) { // 对响应数据做点什么 let data = response.data; if (!data.hasOwnProperty(\'code\')) { return data; } if (data.code === 0 || data.code === -1) { return data; } const error = new Error(data.msg || \'\'); // 对请求错误做统一提示 Vue.prototype.$Message.warning(error.message); error.data = data; error.response = response; throw error; }, function (error) { // 对响应错误做点什么 if (error && error.response) { error.message = status(error); } return Promise.reject(error); });
最后就可以进行操作了,代码中有用到iview的相关组件。
当然,感谢郭大神的帮助与指导,为老铁双击666。
以上是关于vue搭建项目之设置axios的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段14——Vue的axios网络请求封装
VSCode自定义代码片段14——Vue的axios网络请求封装
基于Vue+Less+axios封装+ElementUI搭建项目底层支撑实战
vue全家桶(Vue+Vue-router+Vuex+axios)(Vue+webpack项目实战系列之二)