Переменная JSON верна, но значение не определено? - PullRequest
0 голосов
/ 24 сентября 2011

Вот моя функция успеха для моего запроса ajax через jquery,

success: function(response) {

    if (response.error == undefined) {

    alert(response);
    }
$('#' + id).after('<div id="emailMsg" class="error">' + response.error + '</div>');

}

Поскольку значение возвращается как неопределенное, оно предупреждает меня о возвращенном JSON, который ...

{"error":true}

Почему это происходит, конечно, когда я вызываю response.error, я должен получить либо true, либо false.

UPDATE

Переменная возвращается в виде строки, а не логического, мой json_encode ();

    if (!$q -> rowCount()) {

    echo json_encode(array('error' => false));
}
else {

    echo json_encode(array('error' => true));
}

Ответы [ 2 ]

1 голос
/ 24 сентября 2011

Возможно, вы захотите попробовать добавить параметр dataType: 'json' к вашему вызову $.ajax.Это гарантирует, что jQuery позаботится о том, чтобы ответ стал для вас объектом.

0 голосов
/ 24 сентября 2011

Сначала необходимо проанализировать JSON из строки в объект JavaScript.

Это можно сделать с помощью JSON.parse(response).В старых браузерах, у которых нет встроенного JSON, eval(response) тоже работает, но менее безопасен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...