2014-02-06 38 views
1

我正在使用blueimp fileUpload插件向服务器发送文件,并在ie 8和ie 9中尝试提示我下载文件。当我打开文件时,它是完美的json。如果使用iframe,IE 8和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); 
+0

你试过内容类型的'application/json'吗?这应该是官方的MIME类型。 –

+0

是的,这是行不通的。问题是,如果它认为它是json,并且它使用iFrame,那么它会尝试下载结果。我想欺骗它想它的正文 – segFault

+0

然后尝试提供一些相关的代码,否则它就像在一个朦胧的夜晚徘徊。 –

回答

0

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

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

+0

我不能这样做,因为我使用FubuMVC并需要返回一个对象 – segFault

+0

我也使用FubuMVC。一个字符串是一个对象和一个引用类型,所以它对于返回类型是完全有效的。事实上,我昨天使用它,工作得很好。 – ulu