这次是被坑了,在linux apache运行完好的代码放到IIS服务器上居然没有数据,检查发现居然出现了419错误,要求ajax post请求中应该包含csrf token字段。
然后就突然想起来了,上次相似的项目也发生过这样的问题,上次没记录,时日长久,这次居然一点儿也没想起来...
按照错误提示,在ajax post 请求中加上csrf token 字段:
<meta name="csrf-token" content="{{ csrf_token() }}" /> <script> $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); </script>
然而怎么在apache上测试呢?要把apache上代码的csrf验证开启。
忘记了csrf验证的配置位置,百度了下,文心一言给出了答案,然而'csrf_token' => true后并未生效。
然后就在中间件app/Http/Middleware/VerifyCsrfToken.php中except中看到了居然把当前域名屏蔽了。
虽然说大部分是get请求,但也不能直接把csrf直接关了啊,无语...
话说最近检索问题,文心一言的回答还是比较靠谱的,
顺便记录下laravel入口文件的位置:虽然用了几年的laravel ,但因为有artisan,也从来不用我部署,也没留心入口文件的位置,偶然被问到,一时有些懵。
入口文件位置:/index.php
标签:laravel,验证,token,csrf,apache,419 From: https://www.cnblogs.com/caroline2016/p/17927603.html