Ich hatte die <%= csrf_meta_tags %>
in meinem HEAD-Tag, aber ich erstellte das Formular manuell, so dass die authenticity_token
versteckte Feld wurde nicht in meinem Formular eingefügt.Adde Authentizität Token manuell, aber es ist nicht im Backend
So habe ich die authenticity_token
manuell:
<input name="authenticity_token" value="<%= form_authenticity_token %>" type="hidden">
Wenn ich meine Website Standardkontaktformular senden, um die Aktion (Benutzer ist nicht angemeldet), die es behandelt sollte das Token überprüfen und zulassen/die Anforderung verweigern. Aber es ist nicht: Ich verwende jQuery, um das Feld zu leeren und das Formular zu senden, aber kein Fehler oder Ausnahmefehler wird ausgelöst.
Ich habe diese Zeile protect_from_forgery with: :exception
in application_controller.rb
und setzen Sie das gleiche in die foo_controller.rb
, die application_controller erweitert und hat die Aktion, die auf das Kontaktformular reagiert.
Also was fehlt mir? Was muss ich tun, damit dieses Formular im Backend verifiziert wird?
Vielen Dank!
Sie brauchen nicht 'protect_from_forgery mit:: exception' in' foo_controller.rb', solange der Application Controller es hat. Ihr Setup ist in der Regel richtig, aber es ist schwer, mehr zu sagen, ohne Ihr sehendes Formular/Javascript-Code, fügen Sie es bitte hinzu. –