私は奇妙な問題を抱えています。最近、AJAX 経由で投稿されたテキスト フィールドでエラーが発生していることに気付きました。調査の結果、この POST AJAX リクエストでセッションがリセットされることがわかりました。csrfの問題だと思いました。トークンを確認したところ、レイアウト ファイルのように正しく渡されています。
<%= 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 トークンが既にハッシュされているトークンとは異なることに気付きました。私はこれらすべてを理解することができません。このすべての理由は何か手がかりはありますか?