2011-06-11 49 views
0

我有一个使用this脚本的标准文件上传脚本。当完成上传,发回一个JSON告诉客户端上传就OK,像这样:Ajax上传不能在IE9/Chrome上工作

{done: true, error: "No error"} 

当我在Firefox上传,一切工作顺利进行,但IE9 /铬它休息。 IE告诉我,我需要下载的文件,这样的形象:

IE9's download dialog

我认为这个问题是在标题提交给客户,我尝试设置内容类型:

  • 应用程序/ JavaScript的
  • 文/ JavaScript的

文件被正确存储和答案回来了无覆盖任何腐败,也不在编码,或gzip或任何类似的东西。

任何想法?

编辑:忘了补充的链接“这个”而且,这是一个旧版本的插件,而不是当前的一个。

+0

如果IE正在尝试下载它,那就是一个标题问题。发布更多的代码 - 如何制作上传请求等。 – glortho 2011-06-11 19:07:58

回答

3

我会回答这个问题我自己,因为我已经找到了解决办法,至少它的工作原理...

的是,使用iframe发送请求时,似乎反应不应该的内容类型不是application/jsonapplication/javascript或任何其他喜欢它。我的解决方案是将响应发送为text/html,并在客户端上执行JSON.parse,它的工作原理类似于魅力。

由于我所有的Ajax调用都指定了我期望的JSON,所以当我进行ajax调用时它也可以正常工作,因为jQuery处理整个转换,只有担心我的问题是与客户端性能有关的任何问题,但我看到没有任何问题迹象...

希望任何运行该问题的人都能找到我的答案有帮助!

1

我在过去使用相同的上传小部件和IE 8时遇到了此问题。

header('Content-Type: application/json')给我修好了。你也试过这个吗?

+0

我没有尝试过那个,但我现在也没有,也没有工作... – 2011-06-11 19:29:19

+0

@DavidConde:然后张贴请求和(最重要的)响应头。应该更深入地了解正在发生的事情。 – Jon 2011-06-11 19:43:34