vue-axios 配置整合使用
转载自:https://blog.csdn.net/hant1991/article/details/74931158cnpm install axios1.axios配置 我的目录结构src/axios/index.js,axios配置都在该文件下src/axios/index.js 如下:import axios from 'axios'import qs from 'qs'// axios.
·
转载自:https://blog.csdn.net/hant1991/article/details/74931158
cnpm install axios
1.axios配置
我的目录结构src/axios/index.js,axios配置都在该文件下src/axios/index.js 如下:
import axios from 'axios'
import qs from 'qs'
// axios 配置
axios.defaults.timeout = 5000;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
axios.defaults.baseURL = 'http://localhost:8008';
拦截器,axios.interceptors.request.use发送请求前处理
axios.interceptors.response.use接受返回后,回调之前处理处理
//返回状态判断
axios.interceptors.response.use((res) =>{
console.log(res);
//对响应数据做些事
if(res.status !=200){
// _.toast(res.data.msg);
return Promise.reject(res);
}
return res;
}, (error) => {
//404等问题可以在这里处理
_.toast("网络异常", 'fail');
return Promise.reje98765432+-
ct(error);
});
公共方法:
export function fetch(url, params) {
return new Promise((resolve, reject) => {
axios.post(url, params)
.then(response => {
resolve(response.data);
}, err => {
reject(err);
})
.catch((error) => {
reject(error)
})
})
}
业务方法:
export default {
/**
* 得到用户信息
*/
getInfo(params) {
return fetch('/Train_new/servlet/AppServlet', params)
}
}
如果不理解可以将以上代码依次copy到src/axios/index.js文件,当然axios.defaults.baseURL = 'http://localhost:8008';
需要换成自己的api。
2全局注册axios
为了使用axios,在各个组件中引入就可以使用:
import axios from './axios'
但是使用这种方法我们需要在每一个组件中去引入,有些麻烦,下面我们介绍一种全局注册的方法。
在main.js中:
import axios from './axios'
Vue.prototype.$axios = axios
添加这两行代码,将 axios 改写为 Vue 的原型属性,这样在各个组件中都可以使用axios,具体方法如下:
import api from '../api/api'
api.getInfo(data)
.then(res=>{
alert('成功');
console.log(res)
})
.catch(err=>{
alert('错误');
console.log(err)
})
更多推荐
已为社区贡献31条内容
所有评论(0)