2016-08-04 22 views
0

私はAJAXのPOSTリクエストを使用してCSRF-TOKENで送信していますが - 私のローカルサーバー上でうまく働いたが、私のIISのSERVにTokenMismatchException in VerifyCsrfToken.php line 67:Laravel 5.2 | CSRFトークンが不一致

これはコードです:では

   $.ajax({ 
        url  : '{{ route('dashboard.ajax.update') }}', 
        method : 'POST', 
        data : { 
         table  : 'categories', 
         data  : { 
          order: $count 
         }, 
         conditions : { 
          id: $id 
         } 
        }, 
        dataType: 'JSON', 
        headers : { 
         "X-CSRF-TOKEN": '{{ csrf_token() }}' 
        } 
       }); 

コンソール私は要求を次のように表示できます:X-CSRF-TOKEN:w3liodqf8bdOvWH9uVTzLHVVsE0L1uIlCpnOyVVS

この問題の原因は何ですか?

+0

ビュートークン= ''{Session :: token()}}'で変数を作り、ヘッダを使わずに' _token:token'でデータを渡そうとしないのはなぜですか? –

+0

この問題は、セッションが保存されている場所にも発生することがあります。[More](https://laravel.com/docs/5.2/session) –

答えて

0
$.ajax({ 
     type: 'POST', 
     url: 'stringUrl', 
     beforeSend: function (xhr) { 
      xhr.setRequestHeader('X-CSRF-TOKEN', '{{ csrf_token() }}'); 
     }, 
     data: { 
      'id': $id // etc.. 
     }, 
     cache: false, 
     error: function (xhr, type, exception) { 
      console.log("ajax error response type " + type); 
     } 
    }); 

問題は、私のセッションにあった "beforeSend" イベント

0

にそれを設定してください。すべてのセッションファイルをクリーニングし、キャッシュをクリーニングしてphp artisan key:generateを使用しました。この後、かなりうまくいく。

関連する問題