form_tag with remote:true不会发出ajax请求

我的应用程序中有许多不同的表单,所有表单都使用remote: true 。 但是一个不能正常工作,因为它不使用ajax调用。

清理后,它看起来像:

     

标签看起来像:

 

并且路线条目:

 post "mycontroller/upload_file_ajax", as: "upload_file_ajax" 

但是在Chrome开发工具中检查通话时,标题显示:

 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 

而不像其他forms看起来像:

 Accept:*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript 

我将js文件添加到我的布局中

  "all" %>   

即使我从application.js文件中删除了所有JS代码(除了//= require jquery …),表单也无法正常工作。

我错过了什么?

您无法使用AJAX进行文件上传。 也就是说,通常。

有一个很棒的gem, Remotipart ,它将这个function添加到您的远程表单中。

 gem 'remotipart', '~> 1.0' 

在application.js中

 //= require jquery.remotipart 

您遇到的问题是由于AJAX请求无法提交文件。

您可以尝试使用Jquery Form插件通过AJAX请求使用插件提供的ajaxSubmit方法上传文件