eucalipt
@eucalipt
Самоделкин.

Почему PHP выводит текст на страницу вместо того, чтобы отдать текст в AJAX?

Есть форма, ajax-скрипт отправляет данные PHP скрипту:
var target = $('[data-use-ajax="true"]'),
		ajaxAction = target.attr('action');
		ajaxMethod = target.attr('method');
		ajaxAnswerPool = target.data('ajax-answer');
		//console.log(target.serializeArray());

	$(target).submit(function() {sendAjax()});
	
	function sendAjax() {
		$.ajax({
			method: ajaxMethod,
			url: ajaxAction,
			data: $(target).serializeArray(),
			dataType: "json",
			success: function(answ) {
				
				console.log(answ);
				//message(answ);
				
			}
		});
		
		return false;
	}


Помню, что раньше, когда писал подобные вещи, чтобы отдать json-объект обратно обработчику, достаточно было всего лишь сделать массив, закодировать его в json и отдать при помощи простого print():
$answer = array(
				'success' => false,
				'error' => 'already logged in',
			);

			print json_encode($answer);


Но сейчас, по не понятным мне причинам, вместо того, чтобы просто отдать данные в виде JSON-объекта, открывается страница с этим .php скриптом и данные буквально выводятся на экран.

UPD

Сейчас у меня NginX, если это имеет какое-то значение. Хотя вряд ли это дело в сервере, я думаю, что я что-то упустил в коде. Вот только что...
  • Вопрос задан
  • 382 просмотра
Решения вопроса 1
evgeniy2194
@evgeniy2194
PHP, js developer
попробуйте так:
$(target).submit(function() {
    sendAjax();
    return false;
});

или так:
$(target).submit(function(event) {
    event.preventDefault()
    sendAjax();
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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