我有一个包含带输入的表单的vue组件 - 我正在使用该组件将数据提交到laravel端点。
因此,表单只需在名为Sale.vue
的组件中进行设置<template name="sale">
<form class="form-horizontal" role="form" action="/sales/save" method="POST">
我已经在包含刀片文件的head标记中设置了csrftoken - index.blade.php
<script>
window.Laravel = {!! json_encode([
'csrfToken' => csrf_token(),
]) !!};
</script>
index.blade产生销售页面,而该页面又包含自定义组件
<sale v-if="showModal"></sale>
我原本想过,因为主页面已经有了csrftoken,它应该可以工作。但是,在提交表单时,我收到tokenMismatchException
错误。
我正在使用laravel 5.4 out of box setup for vue,所以它包含了bootstrap.js,它有一行
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = window.Laravel.csrfToken;
由于我尚未使用ajax进行提交,因此不确定这会产生什么影响。
如何让vue组件使用令牌?当然,我不能在组件表单中再做{{csrf_field()}}
而{!! csrf_field() !!}
只打印页面上的文字?
编辑:与可能的欺骗问题不同,我还没有尝试通过Vue / ajax发布,我只是尝试使用标准表单提交。