使用AJAX从jQuery向Rails服务器提交表单在IE11中不起作用

Lan*_*opp 5 javascript ajax jquery ruby-on-rails paperclip

我正在尝试使用AJAX将一些数据从上载到Rails服务器。该表单包含两个文本输入和一个文件输入。我的submit事件处理程序如下所示:

$("form").on("submit", function(event) {

  event.preventDefault();

  $.ajax({
    url: $(this).attr("action"),
    type: $(this).attr("method"),
    data: new FormData(this),
    contentType: false,
    processData: false
  });
});
Run Code Online (Sandbox Code Playgroud)

这在除IE之外的所有浏览器中均能正常工作。当我尝试在IE中提交表单时,我的Rails服务器吐出以下错误:

Unexpected error while processing request: bad content body
        /Users/landonschropp/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/multipart/parser.rb:117:in `get_current_head_and_filename_and_content_type_and_name_and_body'
        /Users/landonschropp/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/multipart/parser.rb:19:in `block in parse'
        /Users/landonschropp/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/multipart/parser.rb:17:in `loop'
        /Users/landonschropp/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/multipart/parser.rb:17:in `parse'
        /Users/landonschropp/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/multipart.rb:25:in `parse_multipart'
        /Users/landonschropp/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/request.rb:377:in `parse_multipart'
        /Users/landonschropp/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/request.rb:203:in `POST'
        /Users/landonschropp/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/methodoverride.rb:26:in `method_override'
        /Users/landonschropp/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/methodoverride.rb:14:in `call'
        ...
Run Code Online (Sandbox Code Playgroud)

对于任何为什么无法解决问题的见解,我将不胜感激。

Fio*_*a T 5

IE10 / 11的表单数据序列化可能是一个错误。根据博客文章,当未检查最后一个可检查的输入时,那些版本的IE破坏了请求。

[1] http://blog.yorkxin.org/posts/2014/02/06/ajax-with-formdata-is-broken-on-ie10-ie11


Bra*_*rth 3

<script>新内容中有标签吗?如果是这样,请尝试不使用该位。我见过某些版本的 ie 遇到包含该标签的 js 更新问题...