laravel 419 csrf验证问题

发布时间 2023-12-26 10:35:47作者: carol2014

这次是被坑了,在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