我正在使用DataTables 1.10.16并使用Ajax我正在尝试构建表。
该表在我的后端工作正常但在前端我得到302重定向。
但如果我在浏览器中调用Ajax URL,它会正确返回数据。
我没有得到我出错的地方
这是初始化DataTable
的方法var datatable = $('#reports-info-table');
datatable.DataTable({
"processing": true,
"serverSide": true,
"ajax": BASE_URL + '/user/reported-business-info',
"columns": [{
data: 'slno',
name: 'slno'
},
{
data: 'report',
name: 'report'
},
{
data: 'business_name',
name: 'business_name'
},
{
data: 'show',
name: 'show',
orderable: false,
searchable: false
}
]
});
这是返回DataTable的方式
return Datatables::of($reports)
->editColumn('report', function ($reports) {
return $reports->vchr_report_message;
})
->editColumn('business_name', function ($reports) {
return $reports->business->vchr_business_name;
})
->addColumn('show', function ($reports) {
if ($reports->int_status == 1) {
return '
<div class="btn-group btn-collection btn-icon-group">
<a class="btn btn-info" data-toggle="tooltip" title="View"> <i class="ua-icon-control-export btn-icon"></i></a>
</div>';
} //If Status is not in active state
else {
return '
<div class="btn-group btn-collection btn-icon-group">
<a class="btn btn-info" data-toggle="tooltip" title="View"> <i class="ua-icon-control-export btn-icon"></i></a>
</div>';
}
})
->rawColumns(['show'])->toJson(true);
答案 0 :(得分:0)
我发现我的中间件正在停止Ajax调用,因此被重定向。
原始代码
if (!$request->ajax() && Auth::check() && (Auth::user()->int_role_id == Roles::ROLE_USER)) {
return $next($request);
}else if (!$request->ajax() && !Auth::check() ){
$url = Request()->path();
Session::put('loginRedirect', $url);
return redirect('/login');
}
已更改为
if (Auth::check() && (Auth::user()->int_role_id == Roles::ROLE_USER)) {
return $next($request);
}else if (!$request->ajax() && !Auth::check() ){
$url = Request()->path();
Session::put('loginRedirect', $url);
return redirect('/login');
}
现在可行。