как достать данные из ответа в json формате

php jQuery AJAX JSON

обращаюсь к скрипту через ajax так:

$.ajax(
{
type : 'POST',
url : 'logic.php',
data : {'position' : $(this).attr('id'), 'action' : 'move'},
datatype: 'json',
success : function(data)
{
console.log(data);
}
});

в logic.php обрабатываются данные, посланные по ajax и далее формируется такой ответ:

$retArray = array('direction' => $direction, 'position' => $_REQUEST['position']);

return json_encode($retArray);


После чего в консоли Firebug`а вижу: {"direction":"left","position":"pos_row2_col2"} . Так вот как из этого достать только direction?? Я пробовал так: console.log(data.direction) - пишет undefined. Пробовал также в скрипте, к которому обращаюсь по ajax, делать так: после чего, страница выводится как plain text , без обработки html кода.. Что предпринять, чтобы достать данные из ответа json?

Примечание:
побовал делать так* header('Content-type: application/json'); и выводит текстом html код страницы

Примечание:
C echo json_encode($retArray); то же самое... Добавлю, что в logic.php у меня вызывается метод класса:

echo $unit->move();

сам класс описан в другом файле и прикручен к logic.php через include.

И вот это прописано в самом классе, в методе move():

return json_encode($retArray);

Может в этом проблема? Я в ООП пока не очень опытен.

Примечание:
разобрался.. Надо было добавить header('Content-type: application/json'); в обработчик ajax запроса. До этого я так делал и выдавало html код текстом, потому что получалось так, что этот заголовок отправлялся раньше, чем начало html кода с метатегами и прочим. Короче, надо было инклуды просто некоторые местами поменять в index.php и все.
Ответы:
нужно не return делать, а echo
я не знаю, что у вас там накручено, но echo прекрасно работает, и используется у меня же везде
jquery начихать на заголовок content-type в ответе сервера в случае использования getJSON


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.