Laravel 5.6 ajax request returns HttpException



我无法通过这个,我尝试在 laravel 中执行 ajax 请求,但我无法传递此错误:

{message: "", exception: "SymfonyComponentHttpKernelExceptionHttpException",…}

这到底是什么意思?CSRF-TOKEN令牌错误或?

阿贾克斯请求:

$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$("#send").click(function(e){
e.preventDefault();
var id = 5;
$.ajax({
url: '{{url("fly")}}',
type:'POST',
data:{id:id},
success:function(data){
console.log('Yes' + data);
}
});
});

知道吗?

您的问题与 CSRF 令牌有关

您已在 ajax 标头中添加了 CSRf 令牌,但在元中尚未指定它。 在布局文件中添加 crsf 元

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

如果您检查浏览器网络控制台,那么如果您 csrf 令牌未正确传递,您将看到 419 错误

Request URL: http://127.0.0.1:8000/fly
Request Method: POST
Status Code: 419 unknown status
Remote Address: 127.0.0.1:8000
Referrer Policy: no-referrer-when-downgrade

更新了标题,如下所示,因为您的标头令牌未在"文档就绪"中设置,也没有在单击"发送"中设置

$("#send").click(function(e){
e.preventDefault();
var id = 5;
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: '{{url("fly")}}',
type:'POST',
data:{id:id},
success:function(data){
console.log('Yes' + data);
}
});
});

在表单标签中添加以下 CSRF 字段将解决此问题:

{{ csrf_field() }}

我昨天已经告诉过你这样做:

$("#send").click(function(e){
e.preventDefault();
var id = 5;
$.ajax({
url: '{{url("fly")}}',
type:'POST',
data:{'id':id,'_token': "{{ csrf_token() }}"},
success:function(data){
console.log('Yes' + data);
}
});
});

最新更新