Vue.jsを統合したLaravel 5.3プロジェクトがあり、私のフォームにCSRF-TOKEN
を使用したいと思います。フォームのHTMLコードを、私はこの持ちvueコンポーネントのCsrfトークン
resources/assets/js/bootstrap.js
にVueのコンポーネントファイルにあります。そして、Vueのファイルに私が必要
require('./bootstrap');
Vue.component('callbackwindow', require('./components/callbackwindow.vue'));
const app = new Vue({
el: '#app',
data: { },
});
:その後、私はメインのVUEファイル/resources/assets/js/app.js
を持って
Vue.http.interceptors.push((request, next) => {
request.headers.set('X-CSRF-TOKEN', MyApp.csrfToken);
next();
});
をcsrf_field
を使用するには、標準のphp csrf_field()
がVueコンポーネント内でレンダリングされないため、そこに取得する方法がわかりません私はMyApp.csrfToken
のインポート方法がわかりません。
<template>
<div class="modal fade" >
<form @submit.prevent="submitForm" name="callback" method="POST" action="/" role="form" class="form-horizontal" enctype="multipart/form-data">
{!! csrf_field() !!}
...form code here...
</form>
</div>
</template>
<script>
export default { }
</script>
それは私のVueのテンプレートファイルにここからMyApp.csrfToken
変数をインポートすることは可能ですか?
<script>
var MyApp = {
csrfToken: "{{ csrf_token() }}"
}
</script>
また、あなたがcookie
ライブラリーのような輸入のものを使用してxsrf
を使用することができます:あなたは、トークンがあなたのメインブレードのファイルのあなたのhead
セクションに以下を追加することですCSRF定義することができ
:あなたのVueのコンポーネントに小道具として
2 - パス、それを:
<head>
の内側csrf-token
名前のROMメタタグ。しかし、私は{!! csrf_field()!!}を実行します。ではない? – schel4okVueで提出しない場合は、各フォームに追加するだけで済みます。そうでない場合は、自動的にリクエストに自動的に追加されます。 –
私は私のフォームをvueで提出しています。なぜ私はcsrf_fieldをこの場合に追加する必要はありませんか? – schel4ok