web-dev-qa-db-ja.com

Laravelの外部jsファイルにcsrf_token()を含める方法は?

最初に、すべてのJavaScriptコードを_<script>_タグを使用してHTMLページに直接記述しました。

JavaScriptでのjQueryのポストコールは、このようなものでした。

_$.post('store',{'_token':'{{csrf_token()}}'}, function(data){ /*a bunch of code*/ });
_

コードは正常に機能しました。しかし、後ですべてのスクリプトを外部のjsファイルに入れました。そして、コードはもう機能していません。

{{csrf_token()}}に問題があります。エラーは

Compiled.phpのTokenMismatchException

Laravelで外部のjsファイルを使用したい場合はどうすればよいですか?

12
  1. トークンを含む_<meta>_タグをブレードレイアウトに追加します。
_<meta name="_token" content="{{ csrf_token() }}">
_
  1. ajaxリクエストのセットアップ:
_$(function() {
  $.ajaxSetup({
    headers: {
      'X-CSRF-Token': $('meta[name="_token"]').attr('content')
    }
  });
});
_

これで、毎回__token_を指定しなくても$.post()を使用できます。

34
Limon Monte