【发布时间】:2021-04-27 14:34:02
【问题描述】:
我正在尝试在Laravel、VueJS 和inertiajs 上构建和应用。
我正在使用maatwebsite/excel 将我的数据导出为 excel 格式。
我有一个具有普通HTML 表单的 vue 组件
home.vue
<form action="/project-profile" target="_blank" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" :value="csrf.content" />
<input type="hidden" name="slug" :value="JSON.stringify(generalDetails.slug)" />
<button class="font-medium tracking-wide">Download Profile</button>
</form>
在挂载方法上,我只是放置我的csrf 令牌。
mounted() {
this.csrf = document.head.querySelector('meta[name="csrf-token"]');
}
在Laravel 部分我在web.php 文件中创建了一条路线
Route::post('project-profile','ProjectProfileExportController@ProjectProfile');
每当我尝试导出或提交表单时,我都会收到 page expired 错误,我遵循了一些指南,它说 csrf_token 存在问题,但在检查表单时我可以看到 token 放置正确。
我尝试通过将其设为 api 来做同样的事情,api.php:
Route::post('project-profile', 'ProjectProfileExportController@ProjectProfile');
但这件事也没有按预期工作。
Screenshot of page expired screen
Screenshot of inspect form element
欢迎任何更好的方法。谢谢。
【问题讨论】:
标签: laravel vue.js maatwebsite-excel