2016-06-11 14 views
2

これはどのように説明できますか?TokenMismatchException ajaxリクエストのRANDOM

  1. クリーン
  2. 問題をセッションのためのRedisを使うLaravel
  3. をインストールし、キャッシュ、私はWindows上でサーバを起動し、Chromeのみに示している場合にのみ発生します。

    パブリック関数のユーザー(){

    :データとJSONを返すメタ<meta name="csrf-token" content="{{ csrf_token() }}" />

  4. にCSRFの設定

    $.ajaxSetup({ 
        headers: { 
         'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
        }, 
        data: { 
         _token: $('meta[name="csrf-token"]').attr('content') 
        } 
    }); 
    
    for(var i = 0; i < 5; i++){ 
    
        getUsers(); 
    } 
    
    function getUsers() { 
        $.ajax({ 
         url: '/users', 
         type: 'POST', 
         success: function(data) { 
          console.log(data); 
         } 
        }); 
    } 
    
  5. :単純なJS AJAX呼び出し機能を使用

  6. $users = User::all(); 
    
    return response()->json([ 
        'users' => $users, 
    ]); 
    

    }

  7. ビデオの最後に、RANDOM TokenMismatchExceptionが表示されます。トークンは変更されませんが、時折エラーが発生します。

https://www.youtube.com/watch?v=QDucHoP647g

私はこの問題は何年から議論されている知っているが、なぜ、このための解決策は存在しないのですか?

私もlaravel githubに投稿しましたが、解決策のどれもが私の問題を解決しませんでした。

答えて

0

なぜトークンを2回送信しますか?そのデータ部分を削除する$.ajaxSetup()

なぜユーザーを取得するためにPOSTを使用していますか?代わりにGETを使用してください。

+0

これは一例です。私はそのPOST /ユーザーに挿入を行うと仮定します。エラーが発生します。私のテストでは、TokenMismatchExceptionが発生するのは、私が私を覚えているだけです。 (そして私はトークンの1つを取り除き、それを一度送った)。 –

+0

これは実際には著者の質問に対する答えではありません。 – antongorodezkiy