为了解决这个问题,需要手动添加Content-Length头信息,指示服务器接收数据的长度。
下面是一个示例代码,展示了如何使用axios发送formdata,并手动附加Content-Length头信息:
let formData = new FormData();
formData.append('name', 'Tom');
formData.append('age', 18);
let config = {
headers: {
'Content-Type': 'multipart/form-data',
'Content-Length': formData.getLengthSync()
}
}
axios.post('/api/user', formData, config)
.then(response => console.log(response))
.catch(error => console.log(error));
在代码中,我们创建了一个FormData对象,并向其中添加了两个键值对,然后我们使用axios发送了请求。注意,我们在config对象中手动添加了Content-Length头信息,使用formData.getLengthSync()
方法来获取要发送数据的总长度。
这样,我们就解决了axios在发送formdata时未附加Content-Lenght头信息的问题。