- axios(config)
config={
method,
url,
data,//只适用于post,put,patch,是请求主体被发送数据
baseURL,//在路径前面添加绝对URL
transformRequest:function(data){},// 对请求data进行任意的转换处理
transformResponse:function(data){},//对响应data进行任意的转换处理
headers:{}//自定义请求头
params:{}// 和请求一起发送的url参数
paramsSerializer:function(params){}//负责将params序列化的函数
timeout,//如果超时,请求中断
withCredentials,//跨域请求是否需要凭证,默认为false
adapter:function(config){},//允许自定义处理请求,测试更轻松
auth:{},//表示应该使用 HTTP 基础验证,并提供凭据,覆盖原有的请求头
responseType,//默认json
// `xsrfCookieName` 是用作 xsrf token 的值的cookie的名称
xsrfCookieName: 'XSRF-TOKEN', // default
// `xsrfHeaderName` 是承载 xsrf token 的值的 HTTP 头的名称
xsrfHeaderName: 'X-XSRF-TOKEN', // 默认的
// `onUploadProgress` 允许为上传处理进度事件
onUploadProgress: function (progressEvent) {
// 对原生进度事件的处理
},
// `onDownloadProgress` 允许为下载处理进度事件
onDownloadProgress: function (progressEvent) {
// 对原生进度事件的处理
},
maxContentLength:2000,//允许响应内容最大尺寸
validateStatus:function(status){},//返回true为resolve,false为reject,一般默认200到300之间为true
maxRedirects:5,//最大重定向数
httpAgent: new http.Agent({ keepAlive: true }),
httpsAgent: new https.Agent({ keepAlive: true }),使用自定义代理
proxy: {
host: '127.0.0.1',
port: 9000,
auth: : {
username: 'mikeymike',
password: 'rapunz3l'
}
},
// 'proxy' 定义代理服务器的主机名称和端口
// `auth` 表示 HTTP 基础验证应当用于连接代理,并提供凭据
// 这将会设置一个 `Proxy-Authorization` 头,
},
2.axios (url[,config])
3.根据请求方法添加别名
-
axios.request(config)
-
axios.get(url[, config])
-
axios.delete(url[, config])
-
axios.head(url[, config])
-
axios.post(url[, data[, config]])
-
axios.put(url[, data[, config]])
-
axios.patch(url[, data[, config]])
4.并发请求
-
axios.all(iterable)
-
axios.spread(callback)
5.使用实例
var instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
实例方法
-
axios#request(config)
-
axios#get(url[, config])
-
axios#delete(url[, config])
-
axios#head(url[, config])
-
axios#post(url[, data[, config]])
-
axios#put(url[, data[, config]])
-
axios#patch(url[, data[, config]])
可以通过实例方法给指定的实例添加配置
6.响应结构
{
data:{},
status:200,
statusText:"OK",
headers:{},
config:{}
}
7.配置的默认值
- 全局的默认值 axios.default.xxx
- 自定义实例的默认值 instance.default.xxx
- 优先顺序 请求config参数>实例的default>默认库
8.拦截器(在请求或者响应被then或catch之前拦截下来)
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
// 对响应数据做点什么
return response;
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error);
});
//可以赋值给变量,然后稍后移除
var myInterceptor = axios.interceptors.request.use(function () {/*...*/});
axios.interceptors.request.eject(myInterceptor);
// 给自定义实例添加拦截器
var instance = axios.create();
instance.interceptors.request.use(function () {/*...*/});
9.错误处理
10.取消请求