【问题标题】:File Post with Ajax for IE使用 Ajax for IE 发布文件
【发布时间】:2013-12-27 15:25:55
【问题描述】:

以下是我的 Ajax 调用,它在所有浏览器中都可以正常工作,但到目前为止它只在 IE 中出现问题。请告诉我如何使用 Ajax 发布文件,并且发布应该支持 IE 6。

var formData = new FormData(document.getElementById('form'));

$.ajax({
    type: "POST",
    url: "email.php",
    data: formData,
    processData: false,  // tell jQuery not to process the data
    contentType: false,   // tell jQuery not to set contentType
    success: function(html){
        if (html.indexOf("filerror") != -1)
        {
            alert('error');
        }
        else if(html.indexOf("true") != -1)
        {
            alert('true');
        }
        else if (html.indexOf("false") != -1)
        {
            alert('false');
        }
    },
    beforeSend:function()
    {

    }
});

【问题讨论】:

  • 为什么你会支持upto IE6 ???
  • 作为旁注,查找formData on MDN,滚动到底部查看支持的浏览器,提示:IE 不在该列表中。
  • @adeneo 感谢您的帮助

标签: javascript jquery ajax internet-explorer


【解决方案1】:

IE6 不支持 HTML5 的 FormData 对象,该对象允许使用 AJAX 上传文件。抱歉,您将不得不求助于更多石器时代的技术来实现这一目标,例如隐藏 iframe 或 Flash 电影。您还可以考虑使用诸如UploadifyjQuery form plugin 之类的插件,它们将检测客户端浏览器的功能,并根据它们使用最佳技术。这样一来,您就无需处理和维护一些死气沉沉的浏览器(例如 IE6)的代码。

【讨论】:

    【解决方案2】:

    对于 IE6,您应该使用技巧将表单发送到 iframe,然后检查 iframe 是否已加载。这是您可以在这里做的最好和最简单的事情。

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 2015-07-08
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 2012-06-05
      • 2011-03-13
      • 1970-01-01
      • 2014-06-03
      相关资源
      最近更新 更多