Невозможно вернуть / обработать JSON в JQuery $ .get () - PullRequest
2 голосов
/ 07 мая 2010

У меня проблема с возвратом / обработкой данных JSON при вызове функции $ .get (). Вот код:
JQuery:

$.get("script.php?",
        function(data) {
            if (data.status) {
                alert('ok');
            } else {
                alert(data.error);
            }               
    },'json');

PHP

if ($r) {
    $ret = array("status"=>true);
} else {
    $ret = array("status"=>false,"error"=>$error);
}
echo json_encode( $ret );

Так что это код. Но ответ всегда принимается как строка в jquery. data.status и data.error: undefined.

Ответы [ 2 ]

4 голосов
/ 07 мая 2010

Ваш PHP-скрипт должен установить заголовок Content-type ответа на application/json, например:

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

В качестве альтернативы, вы можете указать jQuery, что будет возвращать JSON, используя dataType вариант.Или просто используйте getJSON, который делает именно это.: -)

Редактировать Извините, только что заметил: Вы передаете параметр dataType в get.Я предлагаю внимательно посмотреть текст ответа: действительно ли это JSON?( Этот сайт может помочь в этом.) Из вашего цитируемого PHP кажется, что должно быть, но если были какие-либо другие выходные данные до или после ...

1 голос
/ 07 мая 2010

Вам необходимо использовать jQuery 1.4.x, в противном случае вам придется самостоятельно проанализировать возвращаемые данные.

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