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

已在请求头与表单数据中携带CSRF Token,Ajax请求仍返回419状态码问题求助

解决Laravel Ajax请求419状态码(CSRF验证失败)的问题

嘿,我之前也碰到过这种明明带了CSRF Token却返回419的坑,咱们一步步来排查和解决:

1. 先确认Token是否正确获取

首先得确保你拿到的Token是有效的,打开浏览器控制台执行以下命令,检查输出:

  • 检查meta标签的Token:console.log($('meta[name="csrf-token"]').attr('content'))
  • 检查表单input的Token:console.log($("input[name='_token']").val())
    这两个值应该完全一致,如果其中一个是undefined,说明选择器写错了或者标签没正确渲染(比如漏加了meta标签,或者input的name不是_token)。

2. 不要同时在Header和FormData中携带Token

Laravel只需要你通过一种方式传递CSRF Token就行,同时传两种不仅没必要,反而可能因为隐性冲突导致验证失败。建议二选一:

方式一:通过请求头传递(推荐)

去掉FormData中的_token字段,启用headers配置:

var headers = { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }; 
var formData = new FormData(); 
formData.append('request_id', $('#request_id').val()); 
var request = $.ajax({ 
    url: appUrl + "/admin/schedule-detailing-requests", 
    type: "POST", 
    data: formData, 
    processData: false, 
    contentType: false, 
    cache: false, 
    dataType: "json", 
    headers: headers 
});

方式二:通过FormData传递

去掉headers配置,只保留FormData中的_token:

var formData = new FormData(); 
formData.append('_token', $("input[name='_token']").val()); 
formData.append('request_id', $('#request_id').val()); 
var request = $.ajax({ 
    url: appUrl + "/admin/schedule-detailing-requests", 
    type: "POST", 
    data: formData, 
    processData: false, 
    contentType: false, 
    cache: false, 
    dataType: "json" 
});

3. 检查路由是否在正确的中间件组

确保你的路由定义在routes/web.php里(默认应用web中间件组,包含CSRF验证);如果是在routes/api.php中,默认的api中间件组是不验证CSRF的,这时候若返回419,说明路由配置可能有误,或者你手动给api路由加了CSRF验证中间件。

4. 检查会话状态

如果页面打开时间太长,会话可能已经过期,导致Token失效。这时候刷新页面,重新获取新的Token后再发起请求试试。

5. 验证FormData是否正确传递

在发起请求前,通过控制台打印FormData的内容,确认_token和request_id都正确添加了:

console.log(formData.get('_token'));
console.log(formData.get('request_id'));

如果以上步骤都试过还是不行,可以打开浏览器的Network面板,查看请求头和FormData的实际发送内容,确认Token确实被传到了服务器,这样能更精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 10:07:35