Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Laravel数据表JSON响应无效_Javascript_Json_Laravel_Response_Middleware - Fatal编程技术网

Javascript Laravel数据表JSON响应无效

Javascript Laravel数据表JSON响应无效,javascript,json,laravel,response,middleware,Javascript,Json,Laravel,Response,Middleware,在下面的代码中,一切正常,可以获取用户日志: js: 它对我来说很好,但当我只想从数据库中获取2个字段时,它会给我 DataTables警告:表id=systemLogs-JSON响应无效 但有时它也能正常工作 <script> $(document).ready(function () { var table =$('#systemLogs').DataTable({ responsive: true, processing: true,

在下面的代码中,一切正常,可以获取用户日志:

js:

它对我来说很好,但当我只想从数据库中获取2个字段时,它会给我

DataTables警告:表id=systemLogs-JSON响应无效

但有时它也能正常工作

<script>
$(document).ready(function () {
    var table =$('#systemLogs').DataTable({
        responsive: true,
        processing: true,
        serverSide: true,
        "language": {
            "url": "/datatables/media/plug-in/Persian.json"
        },
        ajax: '{!! url('/admin/systemLogs/data/systemLogsDataTable') !!}',
        columns: [
            { data: 'name', name: 'name' },
            { data: 'message_text', name: 'message_text' },
        ]
    });
});
</script>
当我把它改成:

public function handle($request, Closure $next,$guard = 'admin')
{
    return $next($request);
}
它工作正常,这意味着问题来自AJAX。
我该怎么办?

这是因为如果您未登录应用程序,响应将是重定向,而这是无效的AJAX响应,您可以尝试以下方法来处理重定向响应:

$(document).ready(function () {
    var table =$('#systemLogs').DataTable({
        responsive: true,
        processing: true,
        serverSide: true,
        "language": {
            "url": "/datatables/media/plug-in/Persian.json"
        },
        ajax: function(data, callback, settings) {
            // make a regular ajax request
            $.get('{!! url('/admin/systemLogs/data/systemLogsDataTable') !!}', function(res) {
                if(res.redirect)
                    window.location.href = res.redirect;

                callback({
                    data: JSON.parse(res)
                });
            });
        },
        columns: [
            { data: 'name', name: 'name' },
            { data: 'message_text', name: 'message_text' },
            { data: 'remote_addr', name: 'remote_addr' },
            { data: 'log_created_at', name: 'management_logs.created_at' },
            { data: 'log_updated_at', name: 'management_logs.updated_at' },
        ]
    });
});

首先,您使用的是php artisan服务吗?我想是的,所以我建议您使用homestead/valet或任何apache/nginx堆栈

在使用artisan服务时,Laravel随机返回重定向/404响应,这是一个已知的奇怪的包错误

--编辑--

更新了软件包文档,并告知已知错误。

不,我必须先登录才能查看此页面。我说过,如果所选字段的数量超过3,则不会出现错误,或者如果我在服务器端设置为false,则不会再次出现错误。谢谢你说的“制造虚假服务器端”是什么意思@EHSANKHODAYAR当您将serverside设置为true时,它将每次从服务器获取数据,例如搜索或分页等,但当您将其设置为false时,它将第一次从数据库中获取所有数据,然后是搜索或分页等其他操作,另一个不是serverver端,而是客户端。但当你从服务器上取数据,不是吗@ehsankhodayarIt将以两种模式从服务器获取数据,但当您将其置于服务器模式时,它将每次从服务器获取数据,例如搜索或分页,但当它不处于服务器模式时,它将第一次从数据库获取所有日期注释所有数据,这是不合适的。
public function handle($request, Closure $next,$guard = 'admin')
{
    if(!Auth::guard($guard)->check()){
        return redirect('/administrator/logout');
    }else{
        return $next($request);
    }
}
public function handle($request, Closure $next,$guard = 'admin')
{
    return $next($request);
}
$(document).ready(function () {
    var table =$('#systemLogs').DataTable({
        responsive: true,
        processing: true,
        serverSide: true,
        "language": {
            "url": "/datatables/media/plug-in/Persian.json"
        },
        ajax: function(data, callback, settings) {
            // make a regular ajax request
            $.get('{!! url('/admin/systemLogs/data/systemLogsDataTable') !!}', function(res) {
                if(res.redirect)
                    window.location.href = res.redirect;

                callback({
                    data: JSON.parse(res)
                });
            });
        },
        columns: [
            { data: 'name', name: 'name' },
            { data: 'message_text', name: 'message_text' },
            { data: 'remote_addr', name: 'remote_addr' },
            { data: 'log_created_at', name: 'management_logs.created_at' },
            { data: 'log_updated_at', name: 'management_logs.updated_at' },
        ]
    });
});