Vue.js가 통합 된 Laravel 5.3 프로젝트가 있고 내 양식에 CSRF-TOKEN
을 사용하고 싶습니다. 양식 HTML 코드 내가이이vue 구성 요소의 Csrf 토큰
resources/assets/js/bootstrap.js
에서 뷰 구성 요소 파일에 있습니다 :
다음Vue.http.interceptors.push((request, next) => {
request.headers.set('X-CSRF-TOKEN', MyApp.csrfToken);
next();
});
내가 주 VUE 파일 /resources/assets/js/app.js
있습니다
require('./bootstrap');
Vue.component('callbackwindow', require('./components/callbackwindow.vue'));
const app = new Vue({
el: '#app',
data: { },
});
다음
뷰에 내가 필요한 파일을 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>
내 뷰 템플릿 파일에 여기에서 MyApp.csrfToken
변수를 가져올 수 있습니까? , 또는
<script>
var MyApp = {
csrfToken: "{{ csrf_token() }}"
}
</script>
당신은 cookie
라이브러리 등의 수입 무언가를 사용하고 xsrf
을 사용할 수 있습니다 : 당신이 토큰 CSRF 사용자가 정의 할 수
나는이 모든있다. 하지만 나는 {!! csrf_field() !!} 모든 양식. 그렇지 않니? – schel4ok
Vue와 함께 제출하지 않으려는 경우 각 양식에 추가하기 만하면됩니다. 그렇지 않으면 항상 요청에 자동으로 추가됩니다. –
내 양식을 vue와 함께 제출해야합니다. 이 경우에 csrf_field를 추가 할 필요가없는 이유는 무엇입니까? – schel4ok