在Firefox和Edge浏览器上查看时,Ajax响应未在数据表上显示

问题描述 投票:0回答:1

我有报告说在Google Chrome上显示正常,但在尝试在Firefox或Edge浏览器上查看时,json响应显示在浏览器而不是数据表上。下面的示例回复:“[{\”RegisteredBy \“:\”Admin \“,\”PatientRegNo \“:\”De723 \“,\”PaymentType \“:\”Cash \“}]”

我试过包含以下代码:

contentType: 'application/json, charset=utf-8',

return Json(data,JsonRequestBehavior.AllowGet);

这是我的Ajax功能:

$("#searchBtn").click(function () {     
        var url = $("#frmReport").attr('action');
        var str = $("#frmReport").serialize();
        $("#searchBtn").prop("disabled", true);
        $.ajax({
            url: url,
            type: "POST",
            data: str,
            cache: false,
            dataType: "json",              
            success: function (_data) {
                var arr = $.map(JSON.parse(_data), function (el) { return el });                   
                table.clear();
                table.destroy();
                $('#tblReport').dataTable({
                    data: arr,
                    columns: [
                        { "data": "RegisteredBy"},
                        { "data": "PatientRegNo"},
                        { "data": "PaymentType"},                           
                    ],
                    dom: 'Bfrtip',
                    buttons: [
                        'copy', 'csv', 'excel',
                        {
                            extend: 'pdfHtml5',
                            orientation: 'portrait',
                            pageSize: 'A4'
                        }

                    ]
                });

            }
        });
        table = $("#tblReport").DataTable();
    });
});

我的JsonResult代码:

getEntries = superAdminForBillingRepository.GetByRegNoOnly(regNo);
var data = Newtonsoft.Json.JsonConvert.SerializeObject(getEntries);
return Json(data);

我希望能够在任何浏览器上查看数据表上的ajax响应

c# json ajax datatable
1个回答
0
投票

尝试像这样调用你的表:

var tableTypeOfClientInfo = $('#tableTypeOfClientInfo ').DataTable({
                       "destroy": true,
                       "responsive":{
                         "details": {
                         renderer: function ( api, rowIdx, columns ) {
                           var data = $.map( columns, function ( col, i ) {
                             return col.hidden ?
                               '<tr data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
                                 '<td>'+col.title+':'+'</td> '+
                                 '<td>'+col.data+'</td>'+
                               '</tr>' :
                               '';
                           } ).join('');

                           return data ?$('<table/>').append( data ) :false;
                         }
                       }
                     },
                       "autoWidth": false,
                             "ajax": {
                                 "url": 'some.php',
                                 "method": 'POST',
                                 data:{action:"SLC", categoryId:id}
                             },
                             "columns": [
                                 {"data": "identification_number"},
                                 {"data": "address"},
                                 {"data": "birthday"},
                                 {"data": "phone"},
                                 {"data": "mail"}
                             ],
                             "language":{"url": "//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json"},
                               "columnDefs": [
                                 {
                                   "className": "dt-center", "targets": "_all"
                                  }
                               ]
                         });
© www.soinside.com 2019 - 2024. All rights reserved.