Доступ к элементам возвращенного JSON

0

Я пытаюсь получить доступ к отдельным элементам моего JSON, которые я вернул из метода.post с помощью jQuery. Когда я отправляю данные в файл create.php, все, что он делает, это json_encode данные и помещает их в объект json. Вот мой код:

$.post("pages/create.php", {user : "user1", password : "pass2"}, function(data) {
    var newArray = new Array();
    newArray = {"user":"user2","password":"pass2"};
    console.log(newArray.user);
    console.log(data);
    console.log(data.user);

Проблема в том, что первые два консольных журнала делают то, что я ожидаю. Первый дает мне:

"User2"

Второй дает мне:

"пользователь": "user1", "password": "pass2"

Но третий не определен, хотя я знаю, что в объекте JSON данных есть вещи. Является ли мой синтаксис неправильным? Я просто пытаюсь получить доступ к определенному элементу этого JSON.

  • 3
    Можете ли вы проверить запрос AJAX, используя вкладку сети вашего браузера и посмотреть, что происходит
  • 3
    Вы можете добавить 4-й параметр в функцию $ .post () - "json". Это означает, что сервер вернет json, а jquery проанализирует его для вас.
Показать ещё 4 комментария

2 ответа

2
Лучший ответ

Добавьте json качестве четвертого параметра в функцию $.post() как

$.post("pages/create.php", {user : "user1", password : "pass2"}, function( data ) {
    console.log( data.user);
}, "json");

Это опубликует на странице create.php и получит контент, который был возвращен в формате json.

И убедитесь, что create.php возвращает jsonencoded данные как:

<?php echo json_encode(array("user1"=>"Kishor","pass1"=>"mypass")); ?>

Также установите правильный HTTP-заголовок типа контента для JSON как:

header('Content-Type: application/json');

Посмотрите на jQuery.post() и Каков правильный тип содержимого JSON? ,

  • 0
    Просто чтобы уточнить, он сообщает jQuery, что вы ожидаете ответ в формате JSON. На самом деле он не скажет серверу, какой тип ответа вы хотели бы, он полностью зависит от сервера, чтобы обеспечить должным образом отформатированный JSON.
  • 0
    Да, возвращаемые данные должны быть jsonencoded, я тоже упоминал.
Показать ещё 3 комментария
0

все приведенные ответы кажутся правильными, я просто чувствую, что ваш ответ JSON может отсутствовать "{" и "}".., но просто возвращает свойства объекта...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню