【问题标题】:Ajax upload not working on IE9/ChromeAjax 上传在 IE9/Chrome 上不起作用
【发布时间】:2011-06-11 18:57:58
【问题描述】:

我有一个使用this 脚本的标准文件上传脚本。上传完成后,我会返回一个 JSON,告诉客户端上传成功,如下所示:

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

当我在 Firefox 上上传时,一切都很顺利,但在 IE9 / Chrome 上它就坏了。 IE 告诉我需要下载文件,如下图:

我认为问题是提交给客户端的标头,我尝试将内容类型设置为:

  • 应用程序/javascript
  • 文本/javascript

文件已正确存储,并且答案会返回,没有任何损坏,也没有编码,或者 gzip 压缩或类似的东西。

有什么想法吗?

编辑:忘记在 "this" 上添加链接,而且,它是旧版本的插件,而不是当前一个。

【问题讨论】:

  • 如果 IE 试图下载它,那一定是标题问题。发布更多代码——你如何提出上传请求等等。

标签: javascript file-upload internet-explorer-9


【解决方案1】:

我会自己回答这个问题,因为我找到了解决方案,至少它有效......

事情是当使用 iframe 发送请求时,响应的内容类型似乎不应该是 application/jsonapplication/javascript 或任何其他类似的。我的解决方案是将响应发送为text/html,并在客户端上执行JSON.parse,它就像一个魅力。

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

希望任何遇到问题的人都会发现我的回答有帮助!

【讨论】:

    【解决方案2】:

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

    header('Content-Type: application/json') 为我修复了它。你也试过了吗?

    【讨论】:

    • @DavidConde:然后发布请求和(最重要的是)响应标头。应该更深入地了解正在发生的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多