Laravel 5.1:从服务器未接收到Ajax数据

4
以下是路由信息:
$router->get('/securityquestionlist', [ 'as'=> 'SecurityQuestionListIndexRoute', 'uses'=> 'SecurityQuestionListController@index']);

我在控制器类中有以下操作:

public function index()
{
    $model = new SecurityQuestionListModel();

    $data = $model->select('question','created_at', 'updated_at', 'status')->where('status', 1)
            ->orderBy('created_at', 'desc')
            ->paginate(3);

if(Request::ajax()){
        return response()->json(['rData' => $data]);
    }else{
        return view('securityquestionlist.index' /* ,['rData'=> $data]*/ );
    }

以下是Ajax代码:

<script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery('#IdSQLTable').DataTable({
            'ajax'  : 'http://localhost:9901/securityquestionlist',
            'cache' : false

        });
    } );
</script>

我从服务器收到以下 AJAX 响应:

{"rData":{}}

在 AJAX 中,为什么 $data 值没有从服务器返回?如果我禁用 AJAX 并加载普通页面,则客户端将接收到值,并使用数据填充表格行。目前,我已将其标记为备注:

return view('securityquestionlist.index' /* ,['rData'=> $data]*/ );

你可以直接返回数据而不对其进行任何操作。Laravel会自动将其转换为json格式。 - Thomas Kim
1个回答

2

您需要使用toArray()data转换为数组。

$rData = $data->toArray();

使用 send 命令发送响应。
return response()->json(['rData' => $rData]);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接