我在一个Vue.js项目中使用Axios
& FormData
向服务器发送数据,以前它可以工作,但是现在,每当我发送一个formData
对象时,它似乎没有被附加:
模拟服务器:
Chrome开发工具:
(注意content-length为2且缺少FormData)
let url = "https://benben.free.beeceptor.com/1"
const fd = new FormData()
fd.append('key', 'value')
return axios.post(url, fd, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
我尝试过的事
1.在以下位置查找有效负载:chrome/firefox/edge开发工具和模拟服务器。
1.发送简单的JSON而不是FormData -它工作。
1.发送时带标头和不带标头-不会更改任何内容。
1.检查数据是否成功附加到FormData-成功(键-值存在)。
1.尝试了其他Stackoverflow解决方案,到目前为止没有任何效果。
1.更新axios。
1.使用直接的axios API(将对象传递给axios)。
**注意:**我需要FormData,因为我需要上载文件。
如果有任何其他代码示例会有帮助,请告诉我。
先谢了!
3条答案
按热度按时间zu0ti5jz1#
我已经弄明白了--我正在使用
snakecaseKeys
包在发送之前操作数据。它似乎不适合使用FormData对象。谢谢大家的评论!
cnh2zyt32#
如果其他人遇到这个问题,您可以使用
instanceof
避开transformRequest中的转换。vfh0ocws3#
在React中,表单还应具有encType=“multipart/form-data”属性,是否也适用?