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

使用Axios发送Ajax POST请求时,Laravel表单是否需加入csrf_field()?

Laravel中Axios POST请求是否需要在表单中添加{{ csrf_field() }}?

答案很明确:不需要再在<form>标签内添加{{ csrf_field() }}了,因为你已经通过Axios的全局请求头配置完成了CSRF令牌的传递,这和表单隐藏字段的作用完全一致。

具体原因分析:

Laravel的CSRF验证机制支持两种令牌传递方式:

  • 一种是通过表单中的_token隐藏字段(也就是{{ csrf_field() }}生成的内容)
  • 另一种就是通过请求头中的X-CSRF-TOKEN字段

你已经在项目的bootstrap配置里做了这几件关键的事:

  1. 给Axios添加了X-Requested-With: XMLHttpRequest请求头,标记这是一个AJAX请求
  2. 从页面的meta标签中获取了CSRF令牌,并将其设置到Axios的默认请求头X-CSRF-TOKEN中

这样一来,每当你用Axios发送POST请求时,这个令牌会自动随着请求头发送给Laravel,框架会自动识别并验证这个令牌的有效性,完全不需要再依赖表单里的隐藏字段。

补充说明:

如果是普通的非AJAX表单提交(比如直接点击提交按钮发送同步请求),那还是需要在表单里添加{{ csrf_field() }}的,但你的场景是Axios的AJAX请求,所以当前的配置已经足够,无需额外操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:14:44