在IE重定向302中上传Malsup jQuery表单插件

时间:2013-10-14 12:03:42

标签: jquery internet-explorer jquery-forms-plugin

在其他所有浏览器中,多上传表格都有效。只有IE不喜欢它。当我尝试提交表单时,IE在action =“”属性中启动页面上的302重定向。重定向将转到我网站的根目录。

我已经尝试过使用iframe / textarea,但这也行不通。我在IE7,IE8,IE9上测试它。

1 个答案:

答案 0 :(得分:0)

阅读Here

此问题已在github上讨论过。

然后,它有助于准确理解插件正在做什么。因为IE< 10不支持ajax文件上传,该插件通过提交原始表单以及针对动态创建的iframe的响应来模拟用户体验。当iframe加载服务器响应时,插件会提取响应并调用回调处理程序。

如果服务器响应标题内容类型设置为“application / json”,则触发IE的默认下载行为。要避免这种情况,请不要将content-type标头设置为“application / json”。将其保留为text / html或text / plain。

  

如果服务器有实际错误,它将返回一个   错误响应页面,在响应中设置了适当的状态代码   头。这给插件带来了两个问题:

  1. 无法访问响应标头
  2. 它无法从响应机构确定是否 请求成功
  3.   

    潜在的解决方案,如果您可以控制错误响应   page,是在插件将要添加的body元素上添加属性   寻找。该插件将尝试访问“status”和“statusText”   响应的body元素上的属性。所以如果你的错误页面   包括那样的错误处理程序   将被触发。

    只需要对IE

    进行一点点破解
    1. 使用text / html或text / plain代替'application / json'。
    2. 完全控制错误响应,在成功的响应正文中添加错误消息,然后解压缩并处理它。
    3. No JSON response in jQuery form plugin in IE9