Есть форма, 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, если это имеет какое-то значение. Хотя вряд ли это дело в сервере, я думаю, что я что-то упустил в коде. Вот только что...