Datatables TypeError: c is undefined

Check whether you have added

<thead></thead>

<tbody></tbody>

I've resolved this problem by adding those.

So basically the structure must be like:

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

Sometime, This type issue arrives by fixing mismatched / unequal columns with HTML and datatables columns.

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

Above javascript defined 4 columns and HTML having 5 columns

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

Hence you will have to fix / equal both side HTMl and Datatable configuration.

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

in my case, i had to remove colspan attribute from a th inside thead and get rid of the error ;(


dataSrc is a special dataTables ajax option, that should be included inside the ajax object :

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

You have placed it outside ajax, and by that dataTables have no idea what source to use (besides blindly trying the ajax response) or where LOGIN belongs.