[英]NodeJS: Unable to post Form data via Axios
我通過request
和Axios
提交表單字段。 請求版本工作正常,但不是 Axios 之一。 我的猜測是我沒有正確提交數據。 共享兩個版本
const data = {
'CSRF': csrf,
'anti-csrftoken-a2z': '',
'offerListingID': offerListingID
}
請求版本工作正常,返回 3021 重定向
request({url:urlAddItem,headers:headers,method:'POST',gzip:true,form:data},(error:any,response:any,html:string) => {
console.log(response.statusCode)
if(!error && response.statusCode == 200) {
//
}
});
Axios 版本不工作,返回200
const response = await axios({
method: "post",
url: urlAddItem,
headers: headers,
data:data
});
console.log(response.status )
我無法弄清楚我在哪里做錯了。
您必須首先將 object 轉換為表格數據。 你可以使用這個 function 來做到這一點
function createFormData(obj, form, namespace) {
const formData = form || new FormData();
for (const property in obj) {
if (!obj.hasOwnProperty(property) || isUndefined(obj[property])) {
continue;
}
const formKey = namespace ? `${namespace}[${property}]` : property;
if (obj[property] instanceof Date) {
formData.append(formKey, obj[property].toISOString());
} else if (typeof obj[property] === 'object' && !(obj[property] instanceof File)) {
createFormData(obj[property], formData, formKey);
} else {
formData.append(formKey, obj[property]);
}
}
return formData;
}
然后做
await axios({
method: "post",
url: urlAddItem,
headers: {"Content-Type": "multipart/form-data"},
data: createFormData(data)
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.