ActionController :: InvalidAuthenticityToken rails 5

时间:2016-10-04 13:19:13

标签: jquery ruby-on-rails ajax

我正在使用rails版本 - 5.0.0.1

我使用form_for创建表单

<%= form_for :session,:action => '/login/authenicate/',:remote => true, :authenticity_token => true, :html => { :class => 'validate', :id => 'form_login' } do |s| %>

我正在使用ajax将请求发送到服务器。

这是浏览器中显示的表单。

<form class="validate" id="form_login" action="/login" accept-charset="UTF-8" data-remote="true" method="post" novalidate="novalidate"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="authenticity_token" value="i3GVfaN2PbZ80JvdSqO921GuNLaxxo9ctsTBE21aYJYo/XtBG7lyqU7xAzoFjClwOGWSCrC+6mf3no39ua+rDQ==">
            <div class="form-group">
                <div class="input-group">
                    <div class="input-group-addon">
                        <i class="fa fa-user" aria-hidden="true"></i>
                    </div>
                    <input class="form-control" id="username" placeholder="Email Id / Mobile No" type="text" name="session[username]">
                </div>
            </div>

            <div class="form-group">
                <div class="input-group">
                    <div class="input-group-addon">
                        <i class="fa fa-lock" aria-hidden="true"></i>
                    </div>
                    <input class="form-control" id="password" placeholder="Passowrd" type="password" name="session[password]">
                </div>
            </div>

            <div class="form-group">
                <button name="authenicatebtn" type="submit" class="btn btn-primary btn-block btn-login">Login</button>
            </div>

当我在网络标签中查看其显示ActionController::InvalidAuthenticityToken错误时,这是​​对服务器的ajax请求。

1 个答案:

答案 0 :(得分:0)

来自Rails doc:

  

:authenticity_token - 在表单中使用的真实性令牌。仅在需要传递自定义真实性标记字符串时才使用,或者根本不添加authenticity_token字段(通过传递false)。

     

...远程表单从元标记中获取真实性标记,因此除非您支持没有JavaScript的浏览器,否则不需要嵌入。

您希望通过在表单中​​传递:authenticity_token => true来实现什么目标?