一、基本介紹
axios是一個(gè)基于Promise的HTTP客戶(hù)端,可用于瀏覽器和node.js。
axios的特點(diǎn):
從瀏覽器中創(chuàng)建XMLHttpRequests 從node.js創(chuàng)建http請(qǐng)求 支持Promise API 攔截請(qǐng)求和響應(yīng) 轉(zhuǎn)換請(qǐng)求數(shù)據(jù)和響應(yīng)數(shù)據(jù) 取消請(qǐng)求 自動(dòng)轉(zhuǎn)換JSON數(shù)據(jù) 客戶(hù)端支持防止CSRF本文將詳細(xì)介紹axios.put方法,說(shuō)明其使用方法、參數(shù)、特點(diǎn)和應(yīng)用場(chǎng)景。
二、基本用法
在使用axios.put方法時(shí),需要傳入url和data兩個(gè)參數(shù)。
其中,url為請(qǐng)求的接口地址,data為請(qǐng)求的參數(shù)。
axios.put('/api/user', {
name: 'john',
age: 18
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
三、參數(shù)詳解
axios.put方法可以接收三個(gè)參數(shù),分別是url、data和config。
1. url
url為請(qǐng)求的接口地址,可以是相對(duì)路徑或絕對(duì)路徑。
axios.put('/api/user', {
name: 'john',
age: 18
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
2. data
data為請(qǐng)求的參數(shù)。
axios.put('/api/user', {
name: 'john',
age: 18
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
3. config
config為請(qǐng)求的配置選項(xiàng),包括headers、params、timeout等。
axios.put('/api/user', {
name: 'john',
age: 18
}, {
headers: {'X-Requested-With': 'XMLHttpRequest'},
params: {id: 1},
timeout: 1000
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
四、特點(diǎn)
axios.put方法的特點(diǎn)如下:
1. 支持Promise API
axios.put方法返回的是一個(gè)Promise對(duì)象,可用于鏈?zhǔn)秸{(diào)用。
axios.put('/api/user', {
name: 'john',
age: 18
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
2. 支持?jǐn)r截器
axios.put方法支持請(qǐng)求攔截器和響應(yīng)攔截器,用于對(duì)請(qǐng)求和響應(yīng)進(jìn)行全局處理。
// 添加請(qǐng)求攔截器
axios.interceptors.request.use(function (config) {
// 在請(qǐng)求發(fā)送之前做一些處理
return config;
}, function (error) {
// 對(duì)請(qǐng)求錯(cuò)誤做些什么
return Promise.reject(error);
});
// 添加響應(yīng)攔截器
axios.interceptors.response.use(function (response) {
// 對(duì)響應(yīng)數(shù)據(jù)做些什么
return response;
}, function (error) {
// 對(duì)響應(yīng)錯(cuò)誤做些什么
return Promise.reject(error);
});
// 發(fā)送put請(qǐng)求
axios.put('/api/user', {
name: 'john',
age: 18
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
3. 支持取消請(qǐng)求
axios.put方法支持取消請(qǐng)求,用于在請(qǐng)求發(fā)送之前或請(qǐng)求返回之后取消請(qǐng)求。
// 創(chuàng)建取消請(qǐng)求的對(duì)象
var cancelToken = axios.CancelToken;
var source = cancelToken.source();
// 發(fā)送put請(qǐng)求
axios.put('/api/user', {
name: 'john',
age: 18
}, {
cancelToken: source.token
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
// 取消請(qǐng)求
source.cancel('取消請(qǐng)求');
五、應(yīng)用場(chǎng)景
axios.put方法可以用于以下一些場(chǎng)景:
1. 更新數(shù)據(jù)
axios.put可以用于更新數(shù)據(jù)。
axios.put('/api/user', {
id: 1,
name: 'john',
age: 18
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
2. 整體替換數(shù)據(jù)
axios.put可以用于整體替換數(shù)據(jù)。
axios.put('/api/user', {
id: 1,
address: 'beijing'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
3. 批量更新數(shù)據(jù)
axios.put可以用于批量更新數(shù)據(jù)。
axios.put('/api/user/batch', [
{id: 1, name: 'john'},
{id: 2, name: 'mike'}
])
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});