我正在尝试使用Javascript中的FormData
提交多部分表单请求,因为我正在使用的API需要使用此技术提交二进制文件以及一些JSON数据。
通过在字符串化的JSON上使用append()
作为第一部分,并将其与输入元素中的文件一起用作第二部分,我得到一个如下所示的请求:
-----------------------------14955296951218979377392396859
Content-Disposition: form-data; name="json"
{"body":{"messageSegments":[{"type":"Text","text":"This is a file post."}]},"feedElementType":"FeedItem","subjectId":"me","capabilities":{"content":{"description":"File attachment from Clienteling","title":"Some File"}}}
-----------------------------14955296951218979377392396859
Content-Disposition: form-data; name="feedElementFileUpload"; filename="39191-ki1RNjpg-EdDM.jpg"
Content-Type: image/jpeg
*** SNIP ***
除了API说我缺少必需参数subjectId
之外,这一切都很好。这显然在那里,示例文档显示请求的第一部分应该包含Content-Type: application/json
。这不是由FormData引入的,我无论如何也找不到它。有没有办法这样做,或者我将不得不找到一种方法来手动构建这个请求体?