You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8 + Next.js POST请求报419错误排查求助

解决Laravel 8 + Next.js POST请求419 CSRF验证失败问题

1. 修正.env配置错误

你的APP_URL存在多余冒号,且SESSION_DOMAIN、SANCTUM_STATEFUL_DOMAINS的引号会导致Laravel解析异常,修改为:

APP_URL=http://127.0.0.1:8000
FRONTEND_URL=http://localhost:3000
SESSION_DRIVER=cookie
SESSION_DOMAIN=localhost
SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1:3000

注意:SANCTUM_STATEFUL_DOMAINS需要包含前端完整域名+端口,之前遗漏了端口信息。

2. 调整路由与CSRF中间件配置

  • 方案一:如果不需要该POST路由走CSRF验证,打开app/Http/Middleware/VerifyCsrfToken.php,将路由加入$except数组:
protected $except = [
    '/data/save',
];
  • 方案二:将POST路由移至routes/api.php(api路由组默认不加载CSRF验证中间件):
// routes/api.php
Route::post('data/save','HomeController@save_data');

此时前端请求地址需改为http://127.0.0.1:8000/api/data/save。

3. 优化Axios配置

开启withXSRFToken,确保axios自动携带CSRF令牌:

const customFetch = axios.create({
    baseURL: 'http://127.0.0.1:8000/',
    headers: {
        "X-Requested-With": "XMLHttpRequest",
        'Content-Type': 'application/json',
    },
    withCredentials: true,
    withXSRFToken: true, // 开启自动携带XSRF令牌
});

同时确保调用sanctum/csrf-cookie与POST请求使用同一个axios实例,且浏览器未禁用第三方cookie。

4. 清除缓存并重启服务

修改配置后执行以下命令清理Laravel缓存:

php artisan config:clear
php artisan cache:clear
php artisan route:clear

随后重启Laravel开发服务器与Next.js服务,确保配置生效。

内容的提问来源于stack exchange,提问作者mohammadK developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 11:50:04