给出以下 JavaScript 代码(一个简单的上传脚本):
var fd = new FormData();
fd.append("file", document.getElementById('file').files[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", 'http://localhost:22977/home/upload');
xhr.send(fd);
IE 10
和 Chrome 28.x.x.x
将发送 Content-Type
设置为 multipart/form- 的 post 请求数据
。但是 Firefox 21
会将其设置为 application/json
。
通过以下方式设置Content-Type
:
xhr.setRequestHeader("Content-Type", "multipart/form-data");
当 Firefox
发出请求时,仍然不会影响 Content-Type
。
如何让 Firefox
使用正确的 Content-Type
?
编辑
IE 10
和 Chrome 28.x.x.x
请求 header :
Firefox 21
请求 header :
最佳答案
我使用 Firefox 定期通过 FormData 发送 MPE 请求,并且在 21 中这样做有一段时间没有出现问题。我认为它必须是您安装的某个插件。禁用所有 Firefox 扩展并重试。
关于javascript - Firefox 没有为多部分请求设置正确的内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17488833/