Javascript 在node.js上使用表单数据和axios提交文件不';行不通
我必须将这个文件发送到一个API,并用它来测试请求。但是,尝试使用许多不同的方法在节点中复制相同的请求,仍然不起作用。我收到回复说文件有问题 这是curl请求Javascript 在node.js上使用表单数据和axios提交文件不';行不通,javascript,node.js,axios,fs,form-data,Javascript,Node.js,Axios,Fs,Form Data,我必须将这个文件发送到一个API,并用它来测试请求。但是,尝试使用许多不同的方法在节点中复制相同的请求,仍然不起作用。我收到回复说文件有问题 这是curl请求 curl --location --request POST '<api url>' \ --header 'Authorization: Bearer <token>' \ --form 'File=@"C:/Users/aleni/Desktop/Bryce/Truckstop/truckstop_a
curl --location --request POST '<api url>' \
--header 'Authorization: Bearer <token>' \
--form 'File=@"C:/Users/aleni/Desktop/Bryce/Truckstop/truckstop_api/bulk_request_VAN.csv"' \
--form 'CalculatedRateFormula="1 Year Avg Rates"' \
--form 'TimeFrameFromDate="2020-06-01"' \
--form 'TimeFrameToDate="2021-05-03"'
以下是我尝试过的东西:
- 使用文件路径而不是fs
- 带或不带_dirname的请求
- fs.readFile和fs.createReadStream
- 将表单包装在axios请求内的括号中
- 异步等待
- 以及所有可能的战斗
谢谢 解决了它。需要将表单的标题添加到请求中
…form.getHeaders()
const form = new formData();
form.append("CalculatedRateFormula", "1 Year Avg Rates") // Only one available
form.append("UploadName", 'upload_name_' + mm + '_' + dd + '_' + yyyy)
console.log("Starting CSV load")
form.append("File", fs.createReadStream(__dirname + '/bulk_request_VAN.csv'))
form.append("TimeFrameFromDate", day_before_yyyy + '-' + day_before_mm + '-' + day_before_dd)
form.append("TimeFrameToDate", yesterday_yyyy + '-' + yesterday_mm + '-' + yesterday_dd)
axios.post(global_config.api_url,
form
,
{
headers: {
"Authorization": `Bearer ${token}`,
}
})
.then(response =>{
console.log("Request Submitted")
request_id = response.data.referenceID
console.log(response.data)
if(response.data.data){
retrieveResults(request_id)
}
})
.catch(function (error) {
console.log(error);
});