Направляющие простая форма дают ошибку InvalidAuthenticityToken

string hostname = "localhost";
int portno = 9081;
IPAddress ipa = (IPAddress) Dns.GetHostAddresses(hostname)[0];


try
{
    System.Net.Sockets.Socket sock = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
    sock.Connect(ipa, portno);
    if (sock.Connected == true)  // Port is in use and connection is successful
            MessageBox.Show("Port is Closed");
    sock.Close();

}
catch (System.Net.Sockets.SocketException ex)
{
    if (ex.ErrorCode == 10061)  // Port is unused and could not establish connection 
        MessageBox.Show("Port is Open!");
    else
        MessageBox.Show(ex.Message);
}
6
задан Pesto 15 September 2009 в 13:41
поделиться

3 ответа

По умолчанию для всех действий, не связанных с GET, вместе с запросом должен быть передан маркер аутентичности. Rails использует токен аутентичности, чтобы избежать атак CSRF.

Самый простой способ гарантировать, что он всегда на месте, - использовать помощник form_tag вместо написания HTML вручную.

<% form_tag "/home/search", :name => "searchForm" do %>
  fields here
<% end %>
9
ответ дан 8 December 2019 в 02:27
поделиться

Если вы не используете помощников для создания тегов формы, вы можете вручную создать скрытое поле с токеном аутентичности:

<input type="hidden" 
       value="<%= form_authenticity_token() %>" 
       name="authenticity_token"/>
6
ответ дан 8 December 2019 в 02:27
поделиться

По строкам Nat добавление

<%= token_tag %> 

сразу после тега HTML "form" работает

21
ответ дан 8 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: