Api.php中使用post方法路由数据表的ajax问题

Api.php中使用post方法路由数据表的ajax问题,ajax,laravel,datatables,Ajax,Laravel,Datatables,我无法通过Api.php类型POST中的路由让我的DataTable加载数据 我正在使用此数据表: Api.php Route::post('subredes/{username}/{token}',函数($username,$token){ $user=DB::table('usuarios') ->其中('token',$token) ->值(“用户名”); $estado=DB::table('usuarios') ->其中('username',$username) ->价值(“esta

我无法通过Api.php类型POST中的路由让我的DataTable加载数据

我正在使用此数据表:

Api.php

Route::post('subredes/{username}/{token}',函数($username,$token){
$user=DB::table('usuarios')
->其中('token',$token)
->值(“用户名”);
$estado=DB::table('usuarios')
->其中('username',$username)
->价值(“estado”);
如果(!empty(trim($user))&&$estado==2){
$query=DB::table('subredes as s')
->选择('s.id','s.ip','s.gateway','s.mask');
返回数据表()
->查询($query)
->addColumn('btn','Actions.subredes')
->rawColumns(['btn']))
->toJson();
}
});
Javascript

$(文档).ready(函数(){
$('#Subredes')。数据表({
“bAutoWidth”:假,
“语言”:{
“url”:“{url('api/spanish')}”
},
“毁灭”:真的,
“响应”:正确,
“服务器端”:正确,
“ajax”:{
“url”:“{url('api/subredes/'.auth()->user()->username./'.auth()->user()->token)}”,
“类型”:“职位”,
},
“columnDefs”:[{
“目标”:“无排序”,
“可订购”:错误,
“可搜索”:错误,
}],
“栏目”:[
{数据:'ip',名称:'s.ip'},
{数据:'gateway',名称:'s.gateway'},
{数据:'mask',名称:'s.mask'},
{数据:'btn'},
]
});
});
错误:


我怀疑这是因为他没有给他CSRF,但我不知道怎么做,我也不能100%确定这就是问题所在。

问题是DataTables正在发出GET请求,而您只允许POST。错误在ajax配置中:您必须将
类型
替换为
方法
,它将以POST方式发送

资料来源:

CSRF令牌将是您的下一个问题。最简单的方法是使用GET而不是post(在DataTables配置和路由配置中)。否则,您必须在HTML中的某个位置公开令牌(例如,元标记),并将其与请求一起发送:

let-token=document.head.querySelector('meta[name=“csrf-token”]”);
//...
“ajax”:{
“url”:“{url('api/subredes/'.auth()->user()->username./'.auth()->user()->token)}”,
“方法”:“发布”,
“数据”:{
_令牌:令牌,
},

现在,我在jquery中遇到了一个问题:Uncaught TypeError:invalical invocation我认为是在将值分配给变量token use$('meta[name=csrf_token]')。attr(“content”)时出现的,它工作正常,这样做会有任何问题吗?