Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox没有为多部分请求设置正确的内容类型_Javascript_Jquery_Firefox - Fatal编程技术网

Javascript Firefox没有为多部分请求设置正确的内容类型

Javascript Firefox没有为多部分请求设置正确的内容类型,javascript,jquery,firefox,Javascript,Jquery,Firefox,给出以下javascript代码(一个简单的上传脚本): IE 10和Chrome 28.x.x将发送内容类型设置为multipart/form data的post请求。但是,firefox21将其设置为application/json 通过以下方式设置内容类型: xhr.setRequestHeader(“内容类型”、“多部分/表单数据”) 当Firefox发出请求时,仍然不会影响内容类型 如何使Firefox使用正确的内容类型 编辑 IE 10和Chrome 28.x.x请求头: Fire

给出以下javascript代码(一个简单的上传脚本):

IE 10
Chrome 28.x.x
将发送内容类型设置为
multipart/form data
的post请求。但是,
firefox21
将其设置为
application/json

通过以下方式设置
内容类型

xhr.setRequestHeader(“内容类型”、“多部分/表单数据”)

Firefox
发出请求时,仍然不会影响
内容类型

如何使Firefox使用正确的内容类型

编辑

IE 10
Chrome 28.x.x
请求头:

Firefox21
请求头:


我使用Firefox定期通过FormData发送MPE请求,并且在21世纪的一段时间内没有任何问题。我想这一定是你安装的插件。禁用所有Firefox扩展,然后重试。

setRequestHeader必须在.open()之后设置。您这样做了吗?我无法重现此处的问题这似乎不太可能是Firefox中的错误。如何验证内容类型标题?请发布firebug的屏幕截图或粘贴,显示请求标题。此外,您绝对不应该手动设置多部分请求的内容类型标题。浏览器将多部分边界作为参数添加到此标题值中,这是至关重要的。@RayNicholus,Touché。-用请求标题的屏幕截图更新了帖子。-我使用的是fiddler,我已经检查了firebug-给出了相同的标题。
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);