Datatables TypeError: c est indéfini

J'essaie d'utiliser jQuery DataTables mais j'ai l'erreur

TypeError: c est indéfini

Je ne sais pas ce qui ne va pas avec mon code, car je peux voir le JSON récupérer correctement et est dans le format correct aussi, mais je ne sais pas ce qui ne va pas avec moi que j'ai l'erreur ci-dessus.

Mon JSON:

{"Data":[{"LOGIN":10184},{"LOGIN":10214},{"LOGIN":10180},{"LOGIN":10187},{"LOGIN":10179},{"LOGIN":10280},{"LOGIN":201},{"LOGIN":10238},{"LOGIN":10296},{"LOGIN":10312}]} 

Et mon code DataTables:

 $(document).ready(function() { $('#tablename').dataTable( { "processing": true, "serverSide": true, "ajax": { "type": "POST", "url": "https://test.com/api/db/select", "data": function ( json ) { return JSON.stringify( { "Sql": 12 } );}, "contentType": "application/json; charset=utf-8", "dataType": "json", "processData": true, beforeSend : function(xhr){ var access_token = sessionStorage.getItem('access_token'); xhr.setRequestHeader('Authorization', 'Bearer ' + access_token); } }, "dataSrc": "Data", "columns": [ { "data": "LOGIN" } ] } ); } ); 

dataSrc est une option spéciale de dataTables ajax, qui devrait être incluse dans l'objet ajax:

 "ajax": { "dataSrc": "Data", //<--- place dataSrc here instead "type": "POST", ... } 

Vous l'avez placé à l'extérieur d'ajax, et par cette donnée, les tableaux n'ont aucune idée de la source à utiliser (en plus d'essayer aveuglément la réponse ajax) ou d'où appartient LOGIN .

Vérifiez si vous avez ajouté

 <thead></thead> <tboby></tbody> 

J'ai résolu ce problème en ajoutant ces

Donc, fondamentalement, la structure doit être comme

 <table> <thead> <tr> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table> 

Dans mon cas, j'ai eu la même erreur car j'ai utilisé la fonction ajax.dataSrc (données) pour manipuler les données. Mais après cela, j'ai oublié de retourner les données.

 "dataSrc": function ( json ) { for ( var i=0, ien=json.data.length ; i<ien ; i++ ) { //somethings... } return json.data;// I forgot this line, then i got the error "TypeError: c is undefined" } 

Après quelques minutes, j'ai vérifié la documentation de la fonction ajax.dataSrc et j'ai remarqué que je n'avais pas le retour:

Renvoie: tableau . Array de données que DataTables doit utiliser pour dessiner la table

J'espère que tu n'as pas la même distraction …

Quelque temps, cette question de type arrive en fixant des colonnes incompatibles / inégales avec des colonnes HTML et datatables.

 "columns": [ null, null, null, {"orderable": false, "width":"2%"}, ], 

Au dessus, javascript a défini 4 colonnes et HTML avec 5 colonnes

 <tr> <td>A</td> <td>B</td> <td>C</td> <td>D</td> <td>E</td> </tr> 

Par conséquent, vous devrez réparer / égaliser la configuration côté HTMl et Datatable.

 "columns": [ null, null, null, null, //Added New {"orderable": false, "width":"2%"}, ],