Web*_*ter 5 json multipartform-data form-data
如何使用 FormData 创建以下结果
------WebKitFormBoundaryOmz20xyMCkE27rN7
Content-Disposition: form-data; name="data";
Content-Type: application/json
{
"description": "description"
}
------WebKitFormBoundaryOmz20xyMCkE27rN7
Content-Disposition: form-data; name="file"; filename="image.jpg"
Content-Type: image/jpeg
FILE_DATA
------WebKitFormBoundaryOmz20xyMCkE27rN7
Run Code Online (Sandbox Code Playgroud)
我在用
------WebKitFormBoundaryOmz20xyMCkE27rN7
Content-Disposition: form-data; name="data";
Content-Type: application/json
{
"description": "description"
}
------WebKitFormBoundaryOmz20xyMCkE27rN7
Content-Disposition: form-data; name="file"; filename="image.jpg"
Content-Type: image/jpeg
FILE_DATA
------WebKitFormBoundaryOmz20xyMCkE27rN7
Run Code Online (Sandbox Code Playgroud)
它产生
------WebKitFormBoundaryOmz20xyMCkE27rN7
Content-Disposition: form-data; name="data"; filename="blob"
Content-Type: application/json
{
"description": "description"
}
------WebKitFormBoundaryOmz20xyMCkE27rN7
Content-Disposition: form-data; name="file"; filename="image.jpg"
Content-Type: image/jpeg
FILE_DATA
------WebKitFormBoundaryOmz20xyMCkE27rN7
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我们有一个filename="blob"JSON 部分,我想删除它
我想data在我的多部分数据中有一个字段而不是data文件
当你做
new Blob([JSON.stringify({
description: 'description',
})], {
type: 'application/json'
})
Run Code Online (Sandbox Code Playgroud)
您真正生成的是一个文件,一个 UTF-8 文本文件,其内容将以{description:'description}UTF-8 编码。
因此,当您将其附加到 FormData 时,它会作为文件传递,其中一个特殊之处是您确实将其 Content-Type 设置为application/json.
如果您希望将此数据作为表单数据数据的一部分以纯文本形式发送,您的服务器将能够直接从后数据中解析,那么只需将您的字符串附加为您的 FormData 的键:
new Blob([JSON.stringify({
description: 'description',
})], {
type: 'application/json'
})
Run Code Online (Sandbox Code Playgroud)