kuchuluk
@kuchuluk

Как отладить ajax запрос к контроллеру в opencart?

Здравствуйте! Пытаюсь сделать свой модуль комментариев на сайте opencart 2.3. Отправляю данные по клику на элемент
$('#ret').click(function(){
    var name = $('.add_com input[type=\'text\']').val();
    var image = $('.add_com input[type=\'hidden\']').val();
    var text = $('.add_com textarea').val();
		$.ajax({
			url: 'index.php?route=extension/module/comments/addComment&token=<?php echo $token; ?>',
			type: 'post',
			data: { name: name, image: image, text: text },
			dataType: 'json',
			beforeSend: function() {
				console.log($('.add_com input[type=\'text\']'));
			},
			error: function (json) {
                                console.trace(json);
                                alert(json['name']);
			},
			success: function(json) {
				console.log('added');
				console.log(json);
                                location.reload();
			}
		});
		return false;
	});

В контроллере функция addComment выглядит так
function addComment(){
      $json = array();
      $json['name'] = 'Test';
      $this->response->addHeader('Content-Type: application/json');
      $this->response->setOutput(json_encode($json));
}

В итоге по результату отработки ajax срабатывает этот код
error: function (json) {
                                console.trace(json);
                                alert(json['name']);
			},

И алертом выводится undefined значение. Значит получается от контроллера ничего не возвращается...
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
@BogSala
У меня была подобная ошибка, первое что надо проверить, это networkв браузере, и второе, нужно убедится что твой php код к которому ты отправляешь запрос находится в отдельном файле, и не вызывается методами типо require откуда-то ещё, он должен вызываться только аяксом, и попробуй убрать data type, тоже иногда мешает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы