Как мне обработать JSON-запрос, возвращающий строку в JQuery? - PullRequest
1 голос
/ 03 мая 2010

плохо знаком с json / jQuery, извините, если на это есть очевидный ответ.

Я делаю запрос ajax в jQuery, это что-то вроде:

$.ajax({
        url: theURL,
        dataType: 'jsonp',
        type: 'get',
        success: function(data) {
            alert("it's there");
        }
    });

Запрос спрашивает, находится ли данный объект в базе данных. Если это так, он возвращает что-то в формате:

    {
    "text": "duck", 
    "canonical_name": "duck", 
    "language": {
        "id": "en"
    }}

Однако, если объекта там нет, возвращается:

Not Found

Как ... буквально в этой точной строке, а не в каком-либо формате json, насколько я знаю. Есть ли способ, которым я могу заставить свой ajax обнаружить это? Сейчас, похоже, даже не признают, что в последнем случае что-то получили.

Код JSON не был написан мной. Возможно, это можно исправить, если это неправильный формат, и я абсолютно ничего не могу сделать с этим, чтобы работать с этим, но я действительно хотел бы попытаться найти какой-то обходной путь, если это возможно.

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 29 апреля 2011

@ Aneesh Не уверен, что вы хотите удалить опцию dataType, НО вы все равно можете анализировать данные при успешном обратном вызове. Я бы использовал JSON.stringify () или даже лучше: $ .parseJSON (data), чтобы избежать недостатков, которые указал @Lowgain. Вы бы в итоге:

success: function(data) {
    var myJSON = $.parseJSON(data);
}
0 голосов
/ 03 мая 2010

Вы удаляете опцию dataType и в обратном вызове:

success: function(data) {
        alert("it's there");
        var myJSON = eval(data);

    }

Теперь вы можете получить данные как объект и использовать как:

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