1

このエラーが発生し続けます:

DataTables 警告: サーバーからの JSON データを解析できませんでした。これは、JSON フォーマット エラーが原因です。

何が問題なのかわかりません。ルーティングが間違っていませんか?http://jsonlint.com/で生成された json ファイルが有効であることを確認しました。

コントローラー: public function indexAction($id) {

    return $this-render('CetiucValidateSurveyBundle:Validate:validatespreadsheet.html.twig');



}

JavaScript とテーブルを含む twig(view) ファイル。

validatespreadsheet.html.twig':

<table id="myDataTable" >
   <thead>
   <tr>
       <th>Company name</th>
       <th>Address</th>
       <th>Town</th>
   </tr>
   </thead>
   <tbody>



   </tbody>

コントローラーからテーブルのデータを取得するための JavaScript:

<script language="JavaScript" type="text/javascript">
$(document).ready(function () {
    $('#myDataTable').dataTable(

            {
                "bProcessing": true,
                "bServerSide": true,
                "sAjaxSource": "{{ path('CetiucValidateSurveyBundle_renderJson')}}"
            }

    );

});

ビューにデータを返すためのコントローラーのメソッド

public function renderJsonAction(Request $request)
{


    $arr = array ('aaData' => array(
        array('3','35','4', '$14,500', '$15,200','$16,900','5','1'),
        array('1','16','4', '$14,200', '$15,100','$14,900','Running','1'),
        array('5','25','4', '$14,500', '$15,600','$16,900','Not Running','1')
    )
    );

    $post_data = json_encode($arr);

    return new Response( $post_data,200,array('Content-Type'=>'application/json'));//make sure it has the correct content type

}

これは、json を返すアクションのルーティング エントリです。

CetiucValidateSurveyBundle_renderJson:
   defaults: { _controller: "CetiucValidateSurveyBundle:Validate:renderJson" }
   pattern:   /json
   requirements: { _method: POST }
4

1 に答える 1

1

使用しないでください

requirements: { _method: POST }

また、本当に使用しますbServerSide = trueか?

于 2012-10-12T20:42:08.393 に答える