2009-06-11 1 views
4

Хорошо, я немного новичок, когда дело доходит до jQuery и json. Если я использую json в качестве возвращаемого типа, могу ли я получить ответText из объекта XMLHttpRequest?Использование jQuery и JSON с AJAX responseText?

вот код, который я использую:

json response: {"clients": []} 

$.ajax({ 
     type: "POST", 
     url: "/myurl/whatever.php", 
     data: myData, 
     dataType: "json", 

     success: function(msg){ 
      status.html(msg[0]); 
     }, 
     error: function(msg) { 
       status.html("Error: " + msg[0]); 
     } 

     }); 

является использование сообщ [0] правильно, если я хочу, чтобы вывести ответ JSON или я что-то отсутствует?

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

спасибо, все!

ответ

1

Если вы используете json, то вы возвращаете объект json, а не объект XML. Вы можете вывести его напрямую, не используя [0].

+1

как насчет кодов ответа; 200, 500 и т. Д. Или это также вернется с объектом XML? – 2009-06-12 13:59:49

+0

Я не уверен, что вы можете получить доступ к статусу из обратного вызова, в случае объекта json, но то, что вы можете сделать, - это связать ваш серверный скрипт с статусом json перед его отправкой, как и любое другое поле , Затем вы можете проверить это через json.status. – cloudhead

6

Насколько я знаю, вызов $ .ajax возвращает объект XHR, и из того, что responseText могут быть извлечены, например:

var xhr = $.ajax({ 
         url:' someInfo.php', 
         data: 'which=squirrels', 
         asynch: true 
       }); 

var resp = xhr.responseText; 

Текст ответа будет содержать строку JSON, которая бы необходимо преобразовать в объект, который будет использоваться.

Если вы хотите использовать ответ как объект json непосредственно в своей функции success: сделайте так, как предлагалось @cloudhead, и используйте msg. DataType: «json» в вашем options позаботится о конверсии для вас.

Смежные вопросы