如果使用 iframe,IE 8 和 9 尝试下载 json 响应
Posted
技术标签:
【中文标题】如果使用 iframe,IE 8 和 9 尝试下载 json 响应【英文标题】:IE 8 & 9 try to download json response if using iframe 【发布时间】:2014-03-04 04:21:40 【问题描述】:我正在使用 blueimp fileUpload 插件将文件发送到服务器,并且在 ie 8 和 ie 9 中它会尝试提示我下载文件。当我打开文件时,它是完美的 json。
我尝试将内容类型设置为 text/plain 以及将 dataType 设置为 text/plain 但无济于事。
我也在使用 FubuMVC,所以我不能只返回一个字符串。如果它不是 json,那么它会尝试渲染视图。
var obj =
dataType: 'json',
contentType: "application/json",
url: uploadUrl,
formData: formData,
start: function(e, data)
$('#' + loadingDiv).dialog('open');
,
stop: function(e, data)
$('#' + loadingDiv).dialog('close');
,
add: function(e, data)
data.formData = obj.formData;
data.submit();
,
always: function(e, data)
alert('done');
;
$('#' + div).fileupload(obj);
【问题讨论】:
你试过内容类型application/json
吗?那应该是官方的 mime 类型。
是的,但这不起作用。问题是,如果它认为它是 json 并且它正在使用 iFrame,那么它会尝试下载结果。我想欺骗它认为它只是文本
那就试着提供一些你的相关代码,否则就如同在雾霭中摇摇晃晃的。
【参考方案1】:
如果您的操作方法返回字符串,则内容类型设置为text/plain
,浏览器应显示字符串而不是尝试下载文件。
或者您可以在您的操作方法中使用IHttpWriter
。
【讨论】:
我不能这样做,因为我正在使用 FubuMVC 并且需要返回一个对象 我也在使用 FubuMVC。字符串是一个对象,也是一个引用类型,所以它对于返回类型是完全有效的。事实上,我昨天用过,效果很好。以上是关于如果使用 iframe,IE 8 和 9 尝试下载 json 响应的主要内容,如果未能解决你的问题,请参考以下文章
IE9 - 主页中的怪癖模式和特定 iframe 中的“Internet Explorer 9 标准”
在 IE9 的内部 iframe 中忽略 EmulateIE8