微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax – IE想从Django下载返回的JSON

我有一个Django站点,其中一个页面正在进行基于 AJAX文件上传(使用 Valum’s file uploader),它通过JSON返回一些信息. Django返回JSON的方式是……

return HttpResponse( json.dumps( info ),mimetype="application/json" )

在Firefox,Chrome和Safari中尝试页面时,我会获得文件上传器的相应行为,标记上传完成并将数据插入页面上的表格中.

在IE8中进行测试后,我在Django发回JSON后得到了错误的行为:出现了一个下载对话框 – 如果保存它就是JSON文本 – 并且文件上传者继续认为文件正在上传,因为它没有收到任何响应从服务器. IE必须看到响应并将其解释为下载而不是将其传递给页面的javscript.请注意,我已经尝试将mime更改为application / javascript,这似乎没有任何区别.有人得到了修复?

解决方法

IE存在来自iframe的“application / json”响应问题.

虽然我不知道Django的细节,但我可以从其他框架的经验中说,解决这个问题的最简单方法之一是将响应作为“text / html”返回,然后将该字符串解析为JSON.在这种情况下,我猜它就像将响应更改为:

return HttpResponse( json.dumps( info ),mimetype="text/html" )

然后解析你喜欢的任何框架的响应(无论是原生的JSON.parse还是jQuery.parse等).

应仅针对您是ajax上传文件的情况进行本地化(就像您在这里一样).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐