Подтвердить что ты не робот

Исключение: исключение из памяти в процессе Ajax

У меня возникла проблема. Я представляю простую форму с небольшими данными, и когда я проверил вкладку console, URL-адрес ajax, похоже, работает, но после обработки ajax он будет предупреждать об ошибке, и это перенаправлен на мою домашнюю страницу и с вкладки консоли, у меня есть это weird error:

Неотключенное исключение: вне памяти

В моем ajax у меня есть только этот простой код:

$("#add-comment").on('click', function() {

    var id = $('input[name=\'review_id\']').val();
    var customer_id = $('input[name=\'customer_id\']').val();
    var $comment = $('textarea[name=\'user_comment\']').val();

    var sample = "test";

    $.ajax({
        url: 'index.php?route=product/product/writeSubComment',
        type: 'post',
        dataType: 'json',
        data: { text: sample },
        beforeSend: function() {

        },
        success: function(data) {
            console.log(data.test);
        },
        error: function() {
            alert('ERROR!!!');
        }
    });

});

В моем PHP-контроллере у меня есть эта функция

public function writeSubComment() {

    $json = array();

    $json['test'] = $this->request->post['text'];

    $this->response->addHeader('Content-Type: application/json');
    $this->response->setOutput(json_encode($json));

}
4b9b3361

Ответ 1

Из вашего описания перенаправления на главную страницу, но без кода в ваших разделах ответа ajax для этого, я подозреваю, что элемент # add-comment - это кнопка отправки в вашей форме.

Если это так, то ваша форма может быть отправлена ​​одновременно с запуском ajax-кода при нажатии кнопки # add-comment submit. Это объясняет ошибку вне памяти, поскольку javascript ajax будет удален во время перенаправления страницы.

Вам нужно будет запретить отправку вашей формы и позволить разделам success() или отказам выполнить следующий шаг (например, обновить страницу, обновив окно комментариев). Один из способов сделать это - изменить

$("#add-comment").on('click', function() {
     ... 

к

$('#add-comment').on('click', function(event){ 
    event.preventDefault();
    ...

или измените кнопку отправки с

<button type="submit" ...>Add comment</button>

к

<button type="button" ...>Add comment</button>

или измените тег формы следующим образом

<form onsubmit="return false;">

Это мое лучшее предположение из имеющейся у меня информации.

Ответ 2

У меня была аналогичная проблема при тестировании в Firefox. Смена кнопки type от submit до button работала для меня.

<button type="submit" ...>Add comment</button>

к

<button type="button" ...>Add comment</button>

Ответ 3

У меня была эта ошибка при реализации поиска через Ajax, когда я попытался отобразить результат в HTML DOM и решил проблему следующим образом:

$('..a place where the processed output Ajax request..').on('click', '#add-comment', function() {...});

Ответ 4

моя проблема решена путем изменения

<button onClick="save_order_info_into_database()">Save</button>

в

<button type="button" onClick="save_order_info_into_database()">Save</button>

означает добавление type="button" разрешенного моего..