- axios(config)
config={
method,
url,
data,//只適用于post荸哟,put峭拘,patch萄窜,是請求主體被發(fā)送數(shù)據(jù)
baseURL,//在路徑前面添加絕對URL
transformRequest:function(data){},// 對請求data進(jìn)行任意的轉(zhuǎn)換處理
transformResponse:function(data){},//對響應(yīng)data進(jìn)行任意的轉(zhuǎn)換處理
headers:{}//自定義請求頭
params:{}// 和請求一起發(fā)送的url參數(shù)
paramsSerializer:function(params){}//負(fù)責(zé)將params序列化的函數(shù)
timeout,//如果超時(shí)臭杰,請求中斷
withCredentials,//跨域請求是否需要憑證疯溺,默認(rèn)為false
adapter:function(config){},//允許自定義處理請求,測試更輕松
auth:{},//表示應(yīng)該使用 HTTP 基礎(chǔ)驗(yàn)證倔既,并提供憑據(jù),覆蓋原有的請求頭
responseType,//默認(rèn)json
// `xsrfCookieName` 是用作 xsrf token 的值的cookie的名稱
xsrfCookieName: 'XSRF-TOKEN', // default
// `xsrfHeaderName` 是承載 xsrf token 的值的 HTTP 頭的名稱
xsrfHeaderName: 'X-XSRF-TOKEN', // 默認(rèn)的
// `onUploadProgress` 允許為上傳處理進(jìn)度事件
onUploadProgress: function (progressEvent) {
// 對原生進(jìn)度事件的處理
},
// `onDownloadProgress` 允許為下載處理進(jìn)度事件
onDownloadProgress: function (progressEvent) {
// 對原生進(jìn)度事件的處理
},
maxContentLength:2000,//允許響應(yīng)內(nèi)容最大尺寸
validateStatus:function(status){},//返回true為resolve善已,false為reject,一般默認(rèn)200到300之間為true
maxRedirects:5,//最大重定向數(shù)
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' 定義代理服務(wù)器的主機(jī)名稱和端口
// `auth` 表示 HTTP 基礎(chǔ)驗(yàn)證應(yīng)當(dāng)用于連接代理池户,并提供憑據(jù)
// 這將會設(shè)置一個 `Proxy-Authorization` 頭咏雌,
},
2.axios (url[,config])
3.根據(jù)請求方法添加別名
-
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.并發(fā)請求
-
axios.all(iterable)
-
axios.spread(callback)
5.使用實(shí)例
var instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
實(shí)例方法
-
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]])
可以通過實(shí)例方法給指定的實(shí)例添加配置
6.響應(yīng)結(jié)構(gòu)
{
data:{},
status:200,
statusText:"OK",
headers:{},
config:{}
}
7.配置的默認(rèn)值
- 全局的默認(rèn)值 axios.default.xxx
- 自定義實(shí)例的默認(rèn)值 instance.default.xxx
- 優(yōu)先順序 請求config參數(shù)>實(shí)例的default>默認(rèn)庫
8.攔截器(在請求或者響應(yīng)被then或catch之前攔截下來)
// 添加請求攔截器
axios.interceptors.request.use(function (config) {
// 在發(fā)送請求之前做些什么
return config;
}, function (error) {
// 對請求錯誤做些什么
return Promise.reject(error);
});
// 添加響應(yīng)攔截器
axios.interceptors.response.use(function (response) {
// 對響應(yīng)數(shù)據(jù)做點(diǎn)什么
return response;
}, function (error) {
// 對響應(yīng)錯誤做點(diǎn)什么
return Promise.reject(error);
});
//可以賦值給變量,然后稍后移除
var myInterceptor = axios.interceptors.request.use(function () {/*...*/});
axios.interceptors.request.eject(myInterceptor);
// 給自定義實(shí)例添加攔截器
var instance = axios.create();
instance.interceptors.request.use(function () {/*...*/});
9.錯誤處理
10.取消請求