2016-08-10 7 views
0

laravelとajaxを使用して画像をアップロードしています。私のhtmlコードを以下に示します。トークンミスマッチ例外Laravel

<form id='uploadImageForm' class='uploadImageForm'><div class='form-actions noborder'><input type='file' class='file' name='file' attr='file'><input type='hidden' class='productVariantId' name='productVariantId' value='21'><input type='hidden' value='{{ Session::token() }}' class='_token' name='_token'><input type='submit' class='btn default' value='Upload'><label for='multiple' class='control-label'>Add Product Variant Images</label></div></form><br> 

これは私のAJAX要求コードです:

$(document).on('submit', '.uploadImageForm', function (event) { 

       event.preventDefault(); 
       var data = new FormData(this); 
       for (var value of data.values()) { 
       console.log(value); 

       } 

      var request = new XMLHttpRequest(); 
      request.open("POST", "{{ route('productVariantImages.add') }}"); 
      request.send(data); 



      }); 

現在のトークン変数は、ブラウザのネットワークセクションに表示されているlaravelルートにFORMDATAオブジェクトを送信した後。

enter image description here

答えて

0

あなたはcsrf_token()代わりのSession::token()を使用する必要があります。次はスクリーンショットです。

詳細はCSRF Protectionを参照してください。

+0

まだ動作していません –

+0

上記のスクリーンショットでトークンが利用可能です。問題があるようです。 –

+0

'csrf_token()'の値は 'Session :: token()'と異なります。 '$ .ajaxSetup({ ヘッダー:{ 'X-CSRF-TOKEN':$( 'meta [name =" csrf-token "]')。attr( 'content') } }); ' – haitran