【问题标题】:Rails 5 ajax upload file with remotipart not work (send as HTML instead of JS )带有remotipart的Rails 5 ajax上传文件不起作用(作为HTML而不是JS发送)
【发布时间】:2016-12-29 11:26:20
【问题描述】:

Rails 5 和载波

我补充:

gem 'remotipart', '~> 1.3.1'

//= require jquery.remotipart

我有表格:

= simple_form_for state, remote: true do |f|
  = f.input :wsr

该表单的输出:

<form class="simple_form" novalidate="novalidate" id="edit_odc_state_73" enctype="multipart/form-data" action="/odc_states/73" accept-charset="UTF-8" data-remote="true" method="post">

但是当我提交表单时:

Started PATCH "/odc_states/73" for 127.0.0.1 at 2016-12-29 16:02:56 +0700
Processing by OdcStatesController#update as HTML
  Parameters: {"utf8"=>"✓", "odc_state"=>{"wsr"=>#<ActionDispatch::Http::UploadedFile:0x007f67ba393338 @tempfile=#<Tempfile:/tmp/RackMultipart20161229-10725-1r3sn5z.txt>, @original_filename="test1.txt", @content_type="text/plain", @headers="Content-Disposition: form-data; name=\"odc_state[wsr]\"; filename=\"test1.txt\"\r\nContent-Type: text/plain\r\n">}, "id"=>"73"}
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 1ms (ActiveRecord: 0.0ms)

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

为什么要以 HTML 格式发送,有什么想法吗?

【问题讨论】:

  • 我也面临同样的问题。你弄明白了吗?
  • 在我的情况下,错误来自 jquery 处理程序 - “onchange”。检查你的处理程序。
  • 我没有使用任何 jquery 处理程序。目前我正在从头开始构建功能。
  • 我也有同样的问题

标签: ajax carrierwave ruby-on-rails-5 remotipart


【解决方案1】:

我通过替换解决了这个问题

//= require jquery-ujs

//= require rails-ujs

application.js(Rails 5.1.4)中

【讨论】:

    【解决方案2】:

    添加“authenticity_token: true”

    simple_form_for state,
    

    【讨论】:

    • 它没有帮助,仍然作为 HTML 发送
    猜你喜欢
    • 2013-01-17
    • 1970-01-01
    • 2012-05-19
    • 2016-02-03
    • 2017-04-25
    • 1970-01-01
    • 2013-09-15
    • 2012-07-29
    • 1970-01-01
    相关资源
    最近更新 更多