2017-02-22 3 views
0

私はJavaScriptを使用しています。laravelのJavaScriptでCSRFを設定するには?

と私はjQueryのは、によって者にCSRFを設定

$(function() { 
    $.ajaxSetup({ 
    headers: { 
     'X-CSRF-Token': $('meta[name="_token"]').attr('content') 
    } 
    }); 
}); 

しかし、どのように私はJavaScriptで "CSRFトークン" を使用することができます知っていますか?

すべてのAjaxコールの共通設定はありますか?

+0

どうすれば使用できますか? –

+0

ajaxSetupは、すべてのAjaxリクエストに対してcsrfトークンを使用してヘッダーを設定します。 –

+0

jQuery *は* Javascriptです。 jQueryを使用せずにAJAXリクエストのヘッダーにCSRFトークンを追加する方法を尋ねていますか? – maiorano84

答えて

4

すべてのajax呼び出しに共通のcsrfトークンを使用するには、マスターレイアウトのブレードファイルに次のコードを追加します。レイアウトのヘッダで

<meta name="csrf-token" content="{{ csrf_token() }}" /> 

レイアウトのフッターに:これは、すべてあなたのAjaxのリクエストのために動作します

<script type="text/javascript"> 
    jQuery(document).ready(function() {  
     jQuery.ajaxSetup({   
      headers: {    
       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')   
      }  
     });  
    }); 
</script> 

おかげ

+0

私はJavaScriptだけが必要で、jQueryは必要ありません! –

+0

javascriptでは、リクエストごとにトークンを設定する必要があります。 xhr.setRequestHeader( "X-CSRFToken"、csrf_token)のように。 –

1

あなたはレイアウトのヘッダが

上で同じように見える含めることができます。しかし、あなたが使用できるトークンが含まれるように、純粋なJavaScriptを使用したい場合:

var xhttp = new XMLHttpRequest(); 
xhttp.open("POST", url , true); 
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhttp.setRequestHeader("X-CSRF-TOKEN", document.head.querySelector("[name=csrf-token]").content); 
xhttp.send(params); 

希望あなたのコード^^

を助けるために
関連する問題