使用 jquery 上传文件适用于 Firefox,但不适用于 Internet Explorer
File upload using jquery works in Firefox but not in Internet Explorer
This JavaScript code
$(document).ready(function () {
var uploader = new qq.FileUploader({
element: document.getElementById('file-uploader'),
action: 'api/GradeCheckIn',
debug: true,
onComplete: function (id, fileName, responseJSON) {
alert(responseJSON[0].ValidationErrors[0].ErrorMessage);
}
});
});
就像火狐中的魅力一样工作。文件将发布到服务器,并将结果返回到客户端。返回的数据是 json 顺便说一句。
但是在Internet Explorer中,我收到消息是否要从本地主机打开或保存GradeCheckIn(2字节)。 就像我正在尝试下载文件一样。
我该如何解决这个问题?我想要资源管理器中与Firefox中相同的行为。
评论后编辑:
请求标头中的内容类型在 IE 和 Firefox 之间有所不同:
IE: multipart/form-data; boundary=---------------------------7dc2ec8205b2
Firefox: application/json; charset=utf-8
即使我在发出请求的代码中显式设置了内容类型,也是如此:
xhr.open("POST", queryString, true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xhr.send(file);
我仍然无法解决这个问题。所有的想法都受到高度赞赏。请让我知道我是否应该提供更多信息。
大多数浏览器不会将application/json
作为返回内容类型进行处理。如果您仍然想编写 json 并将其从 iframe 中读取出来,您可以考虑"破解"响应并发回您的内容,但使用 mime 类型的text/html
。
相关文章:
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- JavaScript不显示剩余字符,但适用于其他页面
- 我如何完善这个Javascript代码,使其只适用于来自图像的链接(而不是来自文本的链接)
- 为什么这只适用于身体部分而不是头部
- 为什么不't此正则表达式适用于重复出现的对
- document.getElementById 对内部 html 的调用适用于 $_POST 和 $_GET 变量,但不
- JavaScript 位置适用于本地主机而不是服务器
- Rally App SDK 2.0:Rallymultiobjectpicker,适用于不显示displayField的
- jQuery事件在Mozilla上不起作用,并且适用于其他浏览器
- Angular.js - 控制器不为索引执行,适用于其余模板
- D3 .on 更改适用于文本而不是图表
- Zillow 数据 - json_encode不起作用 - 适用于常规变量
- 弹出模式仅适用于表格中的第一个元素,第二次单击后不会再次打开
- Phonegap Android项目适用于模拟器,而不是实际的手机
- ajax jonp 不应该适用于 请求的上不存在“访问控制-允许源”标头
- AngularJS:ng-单击不起作用,适用于<按钮>
- Javascript不会在移动设备上加载.适用于桌面
- 为什么我的代码适用于高度:100px,而不是高度:100%
- 拖放区.js + Laravel-多文件上传不起作用(仅适用于一个文件)
- 哪些限制适用于不透明响应