【问题标题】:IE 8 & 9 try to download json response if using iframe如果使用 iframe,IE 8 和 9 尝试下载 json 响应
【发布时间】: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,那么它会尝试下载结果。我想欺骗它认为它只是文本
  • 那就试着提供一些你的相关代码,否则就如同在雾霭中摇摇晃晃的。

标签: jquery internet-explorer iframe jquery-file-upload fubumvc


【解决方案1】:

如果您的操作方法返回字符串,则内容类型设置为text/plain,浏览器应显示字符串而不是尝试下载文件。

或者您可以在您的操作方法中使用IHttpWriter

【讨论】:

  • 我不能这样做,因为我正在使用 FubuMVC 并且需要返回一个对象
  • 我也在使用 FubuMVC。字符串是一个对象,也是一个引用类型,所以它对于返回类型是完全有效的。事实上,我昨天用过,效果很好。
猜你喜欢
  • 2015-03-29
  • 2013-12-23
  • 2012-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
相关资源
最近更新 更多