从表单数据中删除"filename"标头



我正试图使用FormData((发布一个请求,我需要包含"内容类型";头,所以我使用blob将条目附加到我的表单中,但这会自动将文件名设置为";blob";

const formData = new FormData();
const obj1 = new Blob([json_data], {type: 'text/plain; encoding=utf-8'});
formData.append("small_config", obj1);
const obj2 = new Blob([client], {type: 'text/plain; encoding=utf-8'});
formData.append("app_type", obj2);
const obj3 = new Blob([version], {type: 'text/plain; encoding=utf-8'});
formData.append("product_version", obj3);
let thumb = await fetch(my_url, {
method: 'POST',
mode: 'cors',
cache: 'no-cache',
credentials: 'same-origin',
redirect: 'follow',
referrerPolicy: 'no-referrer',
body: formData
});

有没有办法既设置内容类型又不包括文件名?

没有办法让FormData不发送带有附加blob的文件名。但是,您可以发送一个空字符串。

使用FormData.append的第三个参数

formData.append("small_config", obj1, 'My Filename');

因此,对于您的情况,请尝试一个空字符串。

formData.append("small_config", obj1, '');

来自Mozilla文档:

filename可选
当Blob或File作为第二个参数传递时,报告给服务器的文件名(USVString(。Blob对象的默认文件名是";blob";。File对象的默认文件名是文件的文件名。

最新更新