gpt4 book ai didi

laravel 419(未知状态)

转载 作者:行者123 更新时间:2023-12-02 14:52:36 27 4
gpt4 key购买 nike

7 项目和VueJs2这是我的 VueJs2 代码

mounted: function() {
if(this.edit != null)
{
var token = document.head.querySelector('meta[name="csrf-token"]');
console.log(token);
$.ajax({
type:'POST',
url: path+'get_voucher_data',
data: [{'_token':token}],
success:(data) => {
console.log(data);
}
});
}
}

但是我有这个错误: enter image description here

POST http://localhost/test/public/get_voucher_data 419 (unknown status)

此外,这是我的 Blade 代码:

<meta name="csrf-token" content="{{ csrf_token() }}">

有谁知道为什么会这样,我该如何解决?

最佳答案

Laravel 有一个名为 VerifyCsrfToken 的中间件,它是默认启用的。它确保所有 POST 请求都有一个 csrf token 。此 token 确保请求仅从我们的应用程序发送,而不是从任何第 3 方 scraper 或表单提交工具发送。

当controller在请求中没有获取到_token时,会抛出错误。

看起来您正在尝试发送但不是正确发送。对此更新:

var token = $('meta[name="csrf-token"]').attr('content');

data: {
_token : token
},

目前您关注的是未正确发送 token 的:

data: [{'_token':token}]

更简单的配置:

您可以设置 jquery ajax,而不是在每个 ajax 请求中发送 _token:

$.ajaxSetup({
data: {
_token: $('meta[name="csrf-token"]').attr('content')
}
});

那么每个ajax请求都会自动有这个,不需要在每个ajax请求数据中重新指定。

关于laravel 419(未知状态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54831573/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com