IE8将json响应视为文件并尝试下载它

我正在使用IE8,我正在向url发送ajax请求,该请求以json的forms发回响应。 下面给出了ajax设置的jquery代码:

$(document).ready(function(){ $.ajax({ url: url_string, dataType: "json", success: function(response){ alert('all is well'); }, error: function(request, status, error){ alert(request); alert(status); alert(error); } }); }); 

我确信服务器正在发送JSON响应,但IE8将其视为文件并显示下载弹出框。 但同样的过程适用于FF和Chrome。 当我将data中的 json替换为jsonp时,仍会发生这种情况

但它总是进入错误回调方法。

我的json响应主体也包含一个带有html标签的字符串。

知道为什么会这样吗?

谢谢

我有同样的问题并通过在所有IE请求的响应头中设置Content-type =“text / html”来修复它(而不是“application / json”)

我还写了一篇关于它的博客文章,其中包含更多信息: http : //blog.degree.no/2012/09/jquery-json-ie8ie9-treats-response-as-downloadable-file/

根据发送json的内容,您必须将其作为mime类型文本发送。 所以在rails中我必须这样做。

  render :text => my_array.to_json 

代替

  render :json => my_array 

我修改了你的代码的url并使用了最新版本的JQuery,它在IE8中运行正常

         

这个答案中有一个已知问题,IE8在结果数组中有一个额外的逗号有问题。 检查响应警报的内容。