Jquery datatables не отображает данные в Heroku Python Django? - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь сделать JQuery Datatable в виде HTML. Теперь, по какой-то странной причине, я вижу, что могу получать данные из своего API, но ничего не отображается в таблице данных. Интересно, что тот же код отлично работает, когда я работаю на своей локальной машине. Но когда я проверяю ошибку в своих логах heroku, я вижу, что получаю эту ошибку. журналы ошибок

(index):254 Uncaught TypeError: Cannot read property 'length' of undefined
    at Object.success ((index):254)
    at fire (jquery-1.12.4.js:3232)
    at Object.fireWith [as resolveWith] (jquery-1.12.4.js:3362)
    at done (jquery-1.12.4.js:9840)
    at XMLHttpRequest.callback (jquery-1.12.4.js:10311)

Но на моем локальном сервере все отлично работает.

  $(document).ready(function () {

            //We have to get all users in the system

            var jsonres=[]

            var orgid = $('#orgid').val();
            console.log('orgid',orgid)

            $.ajax({

                url: "/user/api/v1/userapi/",
                type: "get",




                success: function (json) {
                    console.log("json", json)


                    json = json.results;
                    for(var i=0;i<json.length;i++){
                        console.log('jsonnnn',json[i].orgid)

                        if(json[i].orgid==orgid){
                            jsonres.push(json[i])
                        }
                    }



                   console.log('jso',jsonres)
                    var data = jQuery.map(jsonres, function (el, i) {
                        /*  if(el.title.length>20){
                              el.title = el.title.substring(0,10) + '..........';
                          }*/

                        return [[el.userid, el.firstname, el.lastname, el.mobilenumber, el.email, el.isactive]];
                    });

                    $('#demotbl').DataTable({
                        "searching": true,
                        "bLengthChange": false,
                        "order": [[3, "desc"]],


                        "aaData": data,
                        "bPaginate": true,

                        "aoColumns": [
                            {"sTitle": "userid"},

                            {"sTitle": "firstname"},

                            {"sTitle": "lastname"},
                            {"sTitle": "mobilenumber"},
                            {"sTitle": "email"},
                            {"sTitle": "isactive"},

                        ]


                    })


                }
            })


        })


[
    {
        "userid": "test_001123456",
        "firstname": "Remy",
        "lastname": "Das",
        "email": "av20078@gmail.com",
        "mobilenumber": "082929992",
        "isactive": "yes",
        "orgid": "test_001"
    },
    {
        "userid": "test_0013456",
        "firstname": "s",
        "lastname": "sss",
        "email": "ABC@gmail.com",
        "mobilenumber": "786894651",
        "isactive": "yes",
        "orgid": "test_001"
    }
]

1 Ответ

0 голосов
/ 10 сентября 2018

Используйте "dataSrc": "" и ваша проблема решена.

Проблема в том, что когда вы используете серверный ajax, он ожидает, что имя переменной данных как jsonResponse будет выглядеть примерно так:

data: "[
    {
        "userid": "test_001123456",
        "firstname": "Remy",
        "lastname": "Das",
        "email": "av20078@gmail.com",
        "mobilenumber": "082929992",
        "isactive": "yes",
        "orgid": "test_001"
    },
    {
        "userid": "test_0013456",
        "firstname": "s",
        "lastname": "sss",
        "email": "ABC@gmail.com",
        "mobilenumber": "786894651",
        "isactive": "yes",
        "orgid": "test_001"
    }
]";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...