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