Как избежать Uncaught (в обещании) DOMException при вызове ajax? - PullRequest
0 голосов
/ 12 июня 2019

Я получаю ошибку

Uncaught (в обещании) DOMException

на HTML-странице. Эта ошибка возникает, когда я использую Ajax вызов для магазина или другой цели. когда я пытаюсь проверить эту ошибку на этой странице из консоли просмотра, то отображается <!DOCTYPE html>.

Для получения дополнительной информации я занимаюсь разработкой проекта на laravel , внешний интерфейс которого HTML-шаблон Laravel Blade , а внутренний интерфейс - laravel. На некоторых страницах используется обычная форма отправки, а на некоторых страницах используется вызов ajax . Мой браузер Google Chrome последняя версия.

Так что я не могу знать, почему эта проблема происходит?

Я делюсь снимком экрана с этим ответом, пожалуйста ....

введите описание изображения здесь

Когда я нажимаю на файл субъектов: 1 , тогда я прихожу сюда

введите описание изображения здесь

Поэтому я стараюсь найти свое решение везде, но не смог найти. Пожалуйста, скажите мне причину, почему это происходит? Какое решение лучше?

Кодовая часть -----

его заголовок является другим файлом. это только базовый файл, другой jQuery или поддерживающий файл, загружающий его ранее в другой файл ... после загрузки этого файла все эти файлы загружаются. как dataTable и т. д.

<table id="dt_basic" class="table table-striped table-bordered table-hover" width="100%">
<thead>
    <tr>
        <th>SL.</th>
        <th>SUBJECT CODE</th>
        <th>SUBJECT NAME</th>
        <th>COURSE</th>
        <th></th>
        <!-- check  Login -->
        <th></th>
        <!-- check  Login -->

    </tr>
</thead>
<tbody>
@if( count( $subjects ))
@foreach($subjects  as $key => $items )
    <tr>
        <td>{{ $key+1 }}</td>
        <td>{{ $items->SUBJECT_CODE }}</td>
        <td>{{ $items->SUBJECT_NAME }}</td>
        <td>{{\App\Helper\Utility::getCourseByCode($items->CATEGORY)}}</td>
        <td>
            <button type="button" class="btn btn-xs btn-success" onclick="EditSubject({{$items->ID}})">
                <i class="fa fa-edit"></i> Edit</button></td>
        <!-- check  Login -->
        <td><button type="button" class="btn btn-xs btn-danger" onclick="DeleteSubject({{ $items->ID}});">
                <i class="fa fa-remove"></i> Delete</button></td>
        <!-- check  Login -->
    </tr>
    @endforeach
@endif
</tbody>
</table>


<script src="{{ asset('js/plugin/datatables/jquery.dataTables.min.js') }}"></script>
<script src="{{ asset('js/plugin/datatables/dataTables.colVis.min.js') }}"></script>
<script src="{{ asset('js/plugin/datatables/dataTables.tableTools.min.js') }}"></script>
<script src="{{ asset('js/plugin/datatables/dataTables.bootstrap.min.js') }}"></script>
<script src="{{ asset('js/plugin/datatable-responsive/datatables.responsive.min.js') }}"></script>
<script type="text/javascript">


        /* BASIC ;*/
        var responsiveHelper_dt_basic = undefined;

        var breakpointDefinition = {
            tablet : 1024,
            phone : 480
        };

        $('#dt_basic').dataTable({
            "sDom": "<'dt-toolbar'<'col-xs-12 col-sm-6'f><'col-sm-6 col-xs-12 hidden-xs'l>r>"+
            "t"+
            "<'dt-toolbar-footer'<'col-sm-6 col-xs-12 hidden-xs'i><'col-xs-12 col-sm-6'p>>",
            "iDisplayLength": 50,
            "preDrawCallback" : function() {
                // Initialize the responsive datatables helper once.
                if (!responsiveHelper_dt_basic) {
                    responsiveHelper_dt_basic = new ResponsiveDatatablesHelper($('#dt_basic'), breakpointDefinition);
                }
            },
            "rowCallback" : function(nRow) {
                responsiveHelper_dt_basic.createExpandIcon(nRow);
            },
            "drawCallback" : function(oSettings) {
                responsiveHelper_dt_basic.respond();
            }
        });

        function EditSubject(id)
        {
            $("#formModalTitle").html('<h4 class="modal-title">Subject Setting</h4>');
            $('#formModalBody').load("{{ url('setting/subjects/edit') }}","id="+id,function(e){
                $('#formModal').modal('show');
            });
        }

        function DeleteSubject(id)
        {
            $.SmartMessageBox({
                title : "<i class='text-danger fa fa-warning'></i> Caution!!",
                content : "Would you like to delete selected Subject?",
                buttons : '[No][Yes]'
            }, function(ButtonPressed) {
                if (ButtonPressed === "Yes") {
                    $.ajax({
                        type: 'GET',
                        url: "{{ url('setting/subjects/delete') }}",
                        data: {id: id},
                        dataType: "json",
                        success: function (data) {
                            if (data.message) {
                                $.smallBox({
                                    title: "Message",
                                    content: "<i class='fa fa-info-circle'></i> <i>" + data.message + "</i>",
                                    color: "#659265",
                                    iconSmall: "fa fa-check fa-2x fadeInRight animated",
                                    timeout: 4000
                                });
                                $('#showDivSubject').load("{{ url('setting/subjects/list') }}");
                            }
                        } ,
                        error:function (data){
                            $.smallBox({
                                title: "Message",
                                content: "<i class='fa fa-clock-o'></i> <i>" + data.responseJSON.errors.subject_code[0] + "</i>",
                                color: "#C46A69",
                                iconSmall: "fa fa-times fa-2x fadeInRight animated",
                                timeout: 4000
                            });
                        }

                    });
                }
            });
        }

</script>

1 Ответ

0 голосов
/ 12 июня 2019

Если вы используете Promise, вы должны использовать синтаксис как:

var P = new Promise(/*something*/);

P.then(
       doSomeThing();
        }).catch(
        function(reason) {
            console.log(reason);
        });

...