當(dāng)使用axios.post
方法發(fā)送請(qǐng)求時(shí),可以同時(shí)添加查詢參數(shù)(query)和請(qǐng)求體參數(shù)(body)。具體的方法是將查詢參數(shù)添加到URL中,并將請(qǐng)求體參數(shù)作為data
屬性傳遞給axios.post
方法。
代碼演示:
下面是一個(gè)示例,演示了如何將查詢參數(shù)和請(qǐng)求體參數(shù)同時(shí)傳遞給axios.post
方法:
import axios from 'axios';
const apiUrl = 'https://api.xxx.com/post';
// 查詢參數(shù)
const queryParam = {
key1: 'juny',
key2: 'long',
};
// 請(qǐng)求體參數(shù)
const bodyParam = {
name: 'love Y',
age: 25,
};
axios.post(apiUrl + '?' + new URLSearchParams(queryParam), bodyParam)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
在上述代碼中,queryParam
對(duì)象包含要添加到URL中的查詢參數(shù),例如key1
和key2
。bodyParam
對(duì)象包含要發(fā)送到服務(wù)器的請(qǐng)求體參數(shù),例如name
和age
。
在使用axios.post
方法時(shí),使用字符串拼接的方式將查詢參數(shù)添加到URL中,通過new URLSearchParams(queryParam)
創(chuàng)建查詢參數(shù)的字符串。
然后,將請(qǐng)求體參數(shù)作為data
屬性傳遞給axios.post
方法,這樣它們將作為請(qǐng)求的正文發(fā)送給服務(wù)器。
真實(shí)項(xiàng)目舉例:
// 獲取列表
async getlist(){
let that=this
that.loading=true
// 獲取list數(shù)據(jù)
await axios.post(API+'/warehouse/reconciliationMaster/externalSearchReconciliationList',
{...that.queryParams},
{headers: that.postval}) .then(res=> {
that.tableData=res.data.data.items
console.log(res,'res獲取list數(shù)據(jù)');
console.log(that.tableData,'table');
that.total=res.data.data.total
that.loading=false
}) .catch(error=> {
console.log(error)
})
},
注意事項(xiàng):
請(qǐng)注意,具體的URL和請(qǐng)求參數(shù)結(jié)構(gòu)應(yīng)根據(jù)你的實(shí)際情況進(jìn)行調(diào)整。
在使用 query 和 body 參數(shù)時(shí)需要注意以下幾點(diǎn):
Query 參數(shù)一般用于 GET 請(qǐng)求,將參數(shù)組成 URL 的一部分,比如:?
api.example.com/user?username=jack&age=18
,這種形式的請(qǐng)求通常用于獲取資源。在 Express 框架中,可以通過?req.query
?獲取到查詢字符串參數(shù)。因?yàn)樗窃?URL 中出現(xiàn)的,所以大小寫敏感。Body 參數(shù)一般用于 POST、PUT、PATCH 等請(qǐng)求,將參數(shù)放在請(qǐng)求體中,比如表單提交、JSON 數(shù)據(jù)上傳等,這種形式的請(qǐng)求通常用于創(chuàng)建或更新資源。在 Express 框架中,可以通過?
req.body
?獲取到請(qǐng)求體參數(shù)。因?yàn)樗窃谡?qǐng)求體中的,所以大小寫不敏感。在使用 Query 參數(shù)時(shí),需要注意 URL 的最大長度限制,如果參數(shù)太多會(huì)導(dǎo)致 URL 過長,可能引起請(qǐng)求失敗或參數(shù)丟失。
不同類型的參數(shù)都有大小限制,默認(rèn)情況下 Node.js 的?
http
?模塊只支持最大 80KB 的請(qǐng)求頭,10MB 的請(qǐng)求體。如果請(qǐng)求體大小超過限制,需要使用流或文件上傳等方式。Query 參數(shù)和 Body 參數(shù)的字段名稱需要一致,如果字段名稱不一致可能導(dǎo)致參數(shù)無法正確傳遞。如果需要使用不同名稱的字段,則需要在后端代碼中手動(dòng)處理參數(shù)。文章來源:http://www.zghlxwxcb.cn/news/detail-838354.html
在使用 POST 或 PUT 請(qǐng)求時(shí),需要將參數(shù)設(shè)置為 JSON 格式(
Content-Type: application/json
),并將參數(shù)轉(zhuǎn)換為 JSON 字符串??梢允褂?JSON.stringify()
?方法將對(duì)象轉(zhuǎn)換為 JSON 字符串。在 Express 框架中,可以使用?body-parser
?中間件解析 JSON 格式的請(qǐng)求體。文章來源地址http://www.zghlxwxcb.cn/news/detail-838354.html
到了這里,關(guān)于axios同時(shí)使用查詢參數(shù)(query)和請(qǐng)求體參數(shù)(body)發(fā)送請(qǐng)求的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!