it-swarm.com.ru

необработанное исключение: нехватка памяти в Ajax Process

У меня возникла проблема. Я отправляю простую форму с небольшими данными, и при проверке на вкладке 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));

}
21
Jerielle

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

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

Вам нужно будет запретить отправку вашей формы и разрешить разделам 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;">

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

41
Drakes

У меня была похожая проблема при тестировании в Firefox. Изменение кнопки type с submit на button работало для меня. 

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

в

<button type="button" ...>Add comment</button>
5
George Albertyn

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

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

в 

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

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

0
Md. Shafiqur Rahman

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

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

0
Arthur Danko