Laravel Datatables重定向到302

时间:2018-03-21 08:30:51

标签: laravel datatables laravel-5.5

我正在使用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);

1 个答案:

答案 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');
    }

现在可行。