我正在使用 webflow 构建表单,需要接收文件以及其他信息。我按照预期成功接收了电子邮件,并且根据我的日志记录,我正确发送了文件...但我收到的回复中似乎没有附加任何文件?
fetch("https://formsubmit.co/ajax/[email protected]", {
method: "POST",
body: formData,
headers: {
"Accept": "application/json"
}
}).then(function(response) {
if (!response.ok) {
throw Error(response.statusText);
}
return response.json(); // Parse JSON response
}).then(function(response) {
console.log("FormSubmit Response Data:", response); // Log the actual response data
console.log("formData after submission: ", [...formData]); // Log formData contents
const success = document.querySelector(".w-form-done");
const errorElement = document.querySelector(".w-form-fail");
success.style.display = "block";
errorElement.style.display = "none";
form.style.display = "none";
}).catch(function(fetchError) {
console.error("Error:", fetchError);
const errorElement = document.querySelector(".w-form-fail");
errorElement.style.display = "block";
});
});
});
[表单提交控制台 - 文件似乎正在按预期提交](https://i.sstatic.net/Fy7BMvQV.png)
您无需手动设置
Content-Type
:
通过 fetch 发送 FormData 对象时,不应手动设置 Content-Type 标头。浏览器会自动执行此操作,包括发送文件所需的多部分/表单数据边界。如果您自己设置,文件数据可能无法正确处理,这可能是您收不到附件的原因。
确保
FormData
包含您的文件:
如果您的表单有文件输入,只需将表单引用传递给
FormData
就会自动包含该文件。除非您尝试执行特定/自定义的操作,否则无需手动附加它。