ActionController ::InvalidAuthenticityToken rails 5

#jquery #ruby-on-rails #ajax

#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>
  

Это ajax-запрос к серверу, когда я просматриваю на вкладке сети его ActionController::InvalidAuthenticityToken ошибку.

Ответ №1:

Из документа Rails:

:authenticity_token — токен подлинности для использования в форме. Используйте, только если вам нужно передать пользовательскую строку токена подлинности или вообще не добавлять поле authenticity_token (передавая false).

… Удаленные формы получают токен подлинности из мета-тега, поэтому встраивание не требуется, если вы не поддерживаете браузеры без JavaScript.

Чего вы пытаетесь достичь, передавая :authenticity_token => true свою форму?