const axios=require('axios'); //创建axios对象
axios.defaults.baseURL='http://192.168.56.100:8888'; //vue请求后端地址
axios.defaults.timeout=1000; //多久超时
axios.defaults.withCredentials= true; //携带cookie需要添加
/**
* 设置请求传递数据的格式(看服务器要求的格式)
* x-www-form-urlencoded
* 默认提交表单
* 把数据对象序列化成 表单数据
*/
//axios.default.headers['Content-Type']='application/x-www-form-urlencoded';
//axios.default.transformRequest=data =>qs.stringify(data);
/**
*设置默认提交JSON
* 把数据对象序列化成json字符串
*/
axios.defaults.headers['Content-Type']='application/json';
axios.defaults.transformRequest=data =>JSON.stringify(data);
//请求拦截器
axios.interceptors.request.use(config=>{
//从localStorage获取token
let token = localStorage.getItem('token');
//如果有token,就把token设置到请求头中Authorization字段中
token &&(config.headers.Authorization=token);
return config;
},error=>{
return Promise.reject(error);
}
);
//响应拦截器
axios.interceptors.response.use(response=>{
//当响应码 2xx的情况,进入这里
return response.data;
},error => {
//当相应码不是2xx的情况,进入这里
return error
}
);
//get方法,对应get请求
//@params{String} url[请求的url地址]
//@params{Object} params[请求时携带的参数]
export function get(url,params,headers) {
return new Promise((resolve,reject)=>{
axios.get(url,{params,headers}).then(res=>{
resolve(res.data.ResultObj)
}).catch(err=>{
reject(err.data)
})
}
)
}
//post方法,对应post请求
export function post(url,params,headers) {
return new Promise((resolve,reject)=>{
axios.post(url,params,headers).then((res)=>{
resolve(res.data)
}).catch(err=>{
reject(err.data)
})
}
)
}
export default axios;
封装axios
最新推荐文章于 2024-04-11 00:03:19 发布