Как получить необработанный ответ JSON от запроса jQuery $ .getJSON ()? - PullRequest
8 голосов
/ 19 октября 2010

Как мне получить необработанный ответ JSON от запроса jQuery $.getJSON()?

Я просто хочу напечатать необработанный ответ в диалоге alert() в моем браузере?

Ответы [ 5 ]

15 голосов
/ 09 марта 2012

Начиная с jQuery 1.5, объект jqXHR передается в качестве третьего аргумента метода обратного вызова. Объект jqXHR имеет свойство reponseText, которое содержит необработанную строку JSON.

function callback(data, status, jqXHR) {
    alert(jqXHR.responseText);
    // or console.log(jqXHR.responseText);
}
3 голосов
/ 19 октября 2010

Если вы используете JSONP, это принципиально невозможно.

Если вы отправляете обычный запрос в свой домен, замените getJSON на get.

0 голосов
/ 11 мая 2013

Существует несколько различных вариантов получения фактического ответа, будь то анализ JSON или ошибка, сгенерированная браузером / сервером, когда метод 'getJSON' попытался проанализировать, но не смог.

Примечание: при использовании метода .always параметры изменяются в зависимости от неудачи или успеха.

$.getJSON(getData.php, function(data,textStatus,jqXHR) {
    console.log(jqXHR.responseText);

//As of 1.5 we have these methods:
}).always(
    function(jqXHR, textStatus, errorThrown) { //on failure
        console.log(jqXHR.responseText);
}).always(
    function(data, textStatus, jqXHR) { //on success
        console.log(jqXHR.responseText);
}).fail(
    function(jqXHR, textStatus, errorThrown) {
        console.log(jqXHR.responseText);

//As of 1.8 we have this method also:
}).then(
    function(data, textStatus, jqXHR) {
        console.log(jqXHR.responseText);}, 
    function(jqXHR, textStatus, errorThrown) {
        console.log(jqXHR.responseText);
});

Если вы хотите больше информации, посетите:
http://api.jquery.com/jQuery.ajax/#jqXHR или
http://api.jquery.com/category/deferred-object/

0 голосов
/ 19 октября 2010

Я использовал JSON.stringify() в https://github.com/douglascrockford/JSON-js/blob/master/json2.js.

Не идеально, потому что загружается другой файл javascript, но он служит моей цели.

0 голосов
/ 19 октября 2010

http://api.jquery.com/jQuery.getJSON/

Я предпочитаю использовать полные методы .ajax, поэтому мне не нужно запоминать различные подписи абстракций.

Документы говорят вам, что это эквивалентно getJSON:

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});

где вы могли бы иметь:

function callback(data) {
    alert(data);
}

Я настоятельно рекомендую вам использовать Firefox и Firebug с console.log (); для такого рода вещей. Оповещения сводят вас с ума через некоторое время.

Редактировать

Судя по другим ответам, я могу неправильно понять ваш вопрос! Вы всегда можете использовать Fiddler, чтобы увидеть необработанный ответ.

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