2016-04-06 16 views
3

私はWebアプリケーション用にLaravel 5.2を使用していますが、同じイベントで複数のAjaxリクエストがあるページがあります。 $ .ajaxでは、async:trueを設定します。CSRFトークンの不一致エラーが表示され、ログインページにリダイレクトされることがあります。しかし、私はAsync:falseをajaxに設定するとうまくいきますが、時間がかかります。複数の非同期ajaxリクエストでlaravel 5のCSRFトークンのミスマッチエラーが発生しましたか?

トークンのミスマッチエラーが表示されないように手伝ってください。フォームで

答えて

0

あなたがフィールドにあなたが隠されたAを作成

var token = $("input[name='_token']").val(); 

$.ajax({ 
    method: "POST", 
    url: "some.php", 
    data: { name: "John", location: "Boston",_token:token } 
}); 

別の方法を、このフィールドの値を取得する必要がJavaScriptで

{!! csrf_field() !!} 

を生成するには、このヘルパーメソッドを使用することができます_token 1人の隠された申請の名前を作成spanまたはdivにデータ属性を追加する

<div id="token" data-token="{{ csrf_token() }}"></div> 

javascriptで取得するCRIPTデータ値

var token = $("#token").data('token'); 

$.ajax({ 
    method: "POST", 
    url: "some.php", 
    data: { name: "John", location: "Boston",_token:token } 
}); 
+0

私のapp.blade.phpと$ .ajaxSetup({ ヘッダー:{'X-CSRF-Token':$( 'meta [name = _token]')のcontent = "{!! csrf_token ).attr( 'content')} });しかし、それは動作していません。私はすぐにたくさんのajaxリクエストを送信していて、失敗していたものもありました。彼らが成功して失敗するときは、ランダムであった。 – Payal

0

はあなたが

$ .ajaxSetup({ヘッダーを使用言った:{ 'X-CSRFトークン'。$( 'メタ[名= _token]')ATTR( 'content')}}});

要求オーバーライドでたぶんどこかのヘッダー、

$.ajaxSetup({ 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader('X-CSRF-Token', $('meta[name=_token]').attr('content')); 
    } 
}); 
+0

私は上記のコードを使用しましたが、問題は依然として続きます。 :(:( – Payal

0

でそれを変更しようとするので、同様にあなたのurl変数を変更してください:私はすでに<メタ名= "_トークン" を使用している

url: '/my-route'+'?_token=' + '{{ csrf_token() }}', 
関連する問題