创建一个实例
可用axios,create([config])来创建一个新的实例,并设置相关属性
created() {
//局部创建axios实例
this.instance = axios.create({
baseURL: "http:url",
headers: {
Authorization: localStorage.token,
},
});
调用axios实例
//instance的使用
instance.get('/user',{
params:{ID:12345}
}).then(res=>console.log(res))
.catch(err=>console.log(err))
Config配置选项
{
//服务器的地址,是必须的选项
url: '/user',
//请求的方式,若没有则默认是get
method:'get',
//如果url不是绝对地址,则会加上baseURL
baseURL: 'http://localhost:3000/',
//transformRequest允许请求的数据在发送至服务器之前进行处理,这个属性只适用于put、post、patch方式
//数组的最后一个函数必须返回一个字符串或者一个'ArrayBuffer'或'Stream'或'Buffer' 实例或'ArrayBuffer','Formdata',
//若函数中用到了headers,则需要设置headers属性
transformRequest: [function(data,headers){
//根据需求对数据进行处理
return data;
}],
//transformResponse允许对返回的数据传入then/catch之前进行处理
transformResponse:[function(data){
//依需要对数据进行处理
return data;
}],
//headers是自定义的要被发送的信息头
headers: {'X-Requested-with':'XMLHttpRequest'},
//params是请求连接中的请求参数,必须是一个纯对象
params:{
ID:12345
},
//paramsSerializer用于序列化参数
paramsSerializer: function(params){
return Qs.stringify(params,{arrayFormat:'brackets'});
},
//data是请求时作为请求体的数据——request.body
//只适用于put、post、patch请求方法
//浏览器:FormData,File,Blob;Node:stream
data:{
firstName: 'simon',
},
//timeout定义请求的时间,单位是毫秒,如果请求时间超过设定时间,请求将停止
timeout:1000,
//withCredentials表明跨跨域请求书否需要证明。
withCredentials:false, //默认值
//adapter适配器,允许自定义处理请求
//返回一个promise
adapter:function(config){
/*...*/
},
//auth表明HTTP基础的认证应该被使用,并提供证书
auth:{
username:'simon',
password:'123456',
},
//responseType表明服务器返回的数据类型,这些类型包括:json/blob/document/ arraybuffer/text/stream
responseType: 'json',
//proxy定义服务器的主机名和端口号
//auth属性表明HTTP基本认证应该跟proxy相连接,并提供证书
//这将设置一个'Proxy-Authorization'头(header),覆盖原来自定义的
proxy:{
host:127.0.0.1,
port:8080,
auth:{
username:'simon',
password:'123456'
}
},
//取消请求
cancelToken: new CancelToken(cancel=>{})
}
局部添加拦截器
//局部添加拦截器
this.instance.interceptors.request.use(
function (config) {
// 在发送请求之前做些什么
console.log("request发送请求之前", config);
return config;
},
function (error) {
// 对请求错误做些什么
return Promise.reject(error);
}
);
\
this.instance.interceptors.response.use(
function (response) {
// 对响应数据做点什么
console.log("response响应数据", response);
return response.data;
},
function (error) {
// 对响应错误做点什么
return Promise.reject(error);
}
);