【问题标题】:Rails 4, submitting a form by ajax and uploading an image by paperclip gives error: InvalidAuthenticityTokenRails 4,通过ajax提交表单并通过回形针上传图像给出错误:InvalidAuthenticityToken
【发布时间】:2015-05-20 20:14:42
【问题描述】:

使用 rails 4,我在 for_for 标记中使用 remote: true 通过 ajax 提交表单。 我在表单中有一个上传图片的字段,用于图片上传回形针。

如果我提交表单而不上传图片,一切正常。 但是如果我上传图片然后提交相同的表单,我会收到以下错误:

ActionController::InvalidAuthenticityToken(ActionController::InvalidAuthenticityToken)

我尝试使用“authenticity_token: true”如下:

<%= form_for @user, :remote => true, authenticity_token: true, :html=>{:class=>"form_validation ", :multipart=>true }  do |f| %>

上面这段代码没有给我 InvalidAuthenticityToken 错误,但表单是由 html 而不是 js(ajax) 提交的。 我想通过ajax提交表单。

这是 CSRF 问题还是与回形针相关的任何其他问题? 谁能帮我解决这个问题。

【问题讨论】:

    标签: jquery ruby-on-rails ajax paperclip csrf


    【解决方案1】:

    不能通过ajax直接上传文件,需要使用jQuery FormjQuery-File-Upload插件才能实现。您需要查看他们的文档。看看这个问题

    form_tag with remote: true does not make an ajax request

    【讨论】:

    • 您好,感谢您的回复,但我的 gem 文件中已经有了 gem 'remotipart'。您在上面提供的链接具有用户 remotipart gem 的解决方案,我使用的方式完全相同。现在错误没有出现,而是由 HTML 提交(由 UsersController#create as HTML 处理)而不是 JS(ajax)
    【解决方案2】:
    猜你喜欢
    • 2012-11-22
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多