Я пытаюсь получить доступ к отдельным элементам моего 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.
Добавьте 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? ,
все приведенные ответы кажутся правильными, я просто чувствую, что ваш ответ JSON может отсутствовать "{" и "}".., но просто возвращает свойства объекта...