未捕获的TypeError:无法读取null的属性“错误”

时间:2019-11-01 15:32:30

标签: jquery ajax

发布请求不返回记录时会出现此错误

var idgood=$('#good').val();
table = $('#alldata').DataTable({
    "responsive": true,
    "bDestroy": true,
    "bDeferRender": true,
    "aProcessing": true,
    "aServerSide": true,
    "ajax":{
        url: "src/design/controllers/processor.php",
        type: "POST",
        data: {"action": "list","id": idgood},
    },
    "aoColumns": [
            { 'mData': 'id',"visible":false },
            { 'mData': 'typevalue'},
            { 'mData': 'moneyvalue'},
            { 'mData': 'unitedvalue' },
            { 'mData': 'value' }
    ],
    "order": [[ 1, "asc" ]],
    "sPaginationType": "bootstrap",
    language: {"url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Spanish.json"},
    "bInfo": false,
    "bPaginate": false,
    "searching": false
});

发布请求返回记录时,我没有收到错误消息。

1 个答案:

答案 0 :(得分:0)

您根本不处理ajax请求输出。 Ajax请求应该具有successdonefail之类的后操作。

您尝试分配来自后端的值,并在有数据时工作,但无法处理没有数据的情况。

您需要以下内容:

let request = $.ajax({
    url: "src/design/controllers/processor.php",
    type: "POST",
    data: {"action": "list","id": idgood},
});

request.sucess(function(output) {
  //assign your values to a variable which will be inserted in your DataTable
});

request.fail(function(jqXHR, textStatus) {
  alert( "Request failed: " + textStatus );
});

请记住,空响应并不意味着ajax请求失败。因此,请确保以适合您的应用程序的方式处理这种情况