У меня странная проблема. Недавно я обнаружил, что текстовое поле, опубликованное через AJAX, дает ошибку. После расследования я обнаружил, что сеанс сбрасывается для этого запроса POST AJAX. Я думал, должно быть проблема CSR. Я проверил токен, и он передается правильно, как в файле макета:
<%= javascript_tag "var AUTH_TOKEN = #{form_authenticity_token.inspect};" if protect_against_forgery? -%>
И мой AJAX-запрос выглядит так:
<script type="tex/javascript">
$(document).ready(function(){
$("#post_msg").click(function(){
var update = $("#msg").val();
var authenticity_token = AUTH_TOKEN;
$.ajax({
type: "POST",
url: "/messages.js",
data: "msg[text]="+escape(msg) + "&_csrf_token="+encodeURIComponent(authenticity_token),
dataType: "json",
success: function(msg){
// Code to append the msg to DOM
)
Но в отладчике я заметил, что токен csrf отличается от того, который уже есть в хэше. Я не могу понять все это. Любые подсказки, что может быть причиной всего этого?