我有一个 Django 站点,其中一个页面正在执行基于 AJAX 的文件上传(使用Valum 的文件上传器 http://valums.com/ajax-upload/)通过 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 上传文件的情况进行本地化(就像您在这里一样)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)