当 HTML 表单包含 <input type="file">
时我需要指定enctype="multipart/form-data"
表单上的属性。但是,当我通过 XMLHttpRequest
发送二进制文件时我不需要在任何地方指定该类型:
var builder = new BlobBuilder();
builder.append("Hello world!");
var blob = builder.getBlob("text/plain");
var oReq = new XMLHttpRequest();
oReq.open("POST", url, true);
oReq.send(blob);
为什么会这样?
最佳答案
使用表单,您可以告诉浏览器如何格式化数据以将其发送到服务器。 (enctype
的默认值不支持文件)。
使用 XHR,您可以自己格式化数据。 (也就是说,您应该仍然使用addHeader
为您的POST正文指定合适的内容类型)。
关于javascript - 为什么通过表单发送数据时需要包含 enctype ="multipart/form-data"但通过 xmlhttprequest 发送时不需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25443160/