исключение: исключение из памяти в процессе 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)); } 

Из вашего описания перенаправления на вашу домашнюю страницу, но без кода в ваших разделах ответа 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;"> 

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

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

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

в

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

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

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

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

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

в

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

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