当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);
为什么会这样?
答案 0 :(得分:2)
使用表单,您告诉浏览器如何格式化数据以将其发送到服务器。 (enctype
的默认值不支持文件。
使用XHR,您自己格式化数据。 (也就是说,应仍然使用addHeader
为您的POST正文指定合适的内容类型。)