前端怎么正确发送 CSRF Token 到后端?

东方柯依 阅读 3

我在用 Axios 发请求时,后端要求带 CSRF Token,但我试了几次都提示验证失败。我从页面 meta 标签里读取了 token,也加到 header 里了,但好像没生效?

这是我的代码:

const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content');

axios.post('/api/submit', data, {
  headers: {
    'X-CSRF-TOKEN': csrfToken
  }
});

后端是 Laravel,文档说要用这个 header 名,但还是报 419 错误,是不是哪里漏了?

我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
 ___炎昊
Laravel 有时候会有点坑,确保你做了这些步骤:

1. 确保你的页面有这个 meta 标签,而且位置正确。
2. 检查一下你的 axios 请求是不是在同一个域名下,跨域的话可能会有问题。
3. 最后,确保你在请求头里加的 token 名字对了,Laravel 默认的是 'X-CSRF-TOKEN',你这里是对的。

不过有时候可能还是不行,可以试试这样全局设置一次:

axios.defaults.headers.common['X-CSRF-TOKEN'] = document.querySelector('meta[name="csrf-token"]').getAttribute('content');


然后你的请求就不用每次都设置了。拿去改改,应该就能解决了。
点赞
2026-03-21 17:08