"message": "CSRF token mismatch."
,
- 由于 Laravel 框架中的 CSRF 中间件检测到请求中传递的
_token
参数与 Session 中存储的 token 值不匹配,从而导致请求被拒绝。这种安全机制可以避免 CSRF 攻击,也就是通过伪造页面提交 POST 请求来实现操作。 - 解决方案:发送 AJAX 请求时,同时将当前页面的
_token
值作为参数一同传递给后端:data: { "_token": $('input[name=_token]').val(), "data": uniqueIds },
在发送请求时,需要将请求类型改为 POST。
$('meta[name="csrf-token"]').attr('content')
表示获取当前页面的_token
值。需要注意的是,如果在 blade 视图文件中使用了csrf_field
方法,那么在页面中会自动生成一个名为_token
的隐藏输入框,并且其值就是当前页面的 CSRF token。在这种情况下,我们可以通过$('input[name=_token]').val()
获取到 CSRF token 值。