2015-09-18 2 views
1

Итак, наш программист сделал вызов AJAX, который возвращает объект. Я не знаю, как добавить данные, которые он возвращает в элемент. Любая помощь приветствуется.jquery ajax call возвращает объект, как получить значение объекта

AJAX ВЫЗОВ

$('.submit_btn').unbind('click').bind('click', function(e) { 
    e.preventDefault(); 

    $.ajax({ 
     type: "POST", 
     url: $(this).data('url'), 
     data: { 
      csrfmiddlewaretoken: $(this).data('csrf') 
     }, 
     success: function(data) { 
      console.log('success'); 
      console.log(data); 
     }, 
     error: function(ret) { 
      var data = JSON.parse(ret.responseText); 
      console.log('error'); 
      console.log(data); 
     }, 
    }); 
}); 

После нажатия на кнопку отправки, я получаю в консоли «успех» и:

Object {409: "Response message"} or Object {201: "Response message"} 

И я должен присоединить ответное сообщение к элементу. Как я могу получить доступ к ответному сообщению?

+0

console.log (данные.409); –

+0

данные, которые были отправлены с php, являются данными, так как вы не указали тип типа данных, который вы должны проанализировать. – guradio

+0

@DavidJawphan Это совершенно неправильно, вы даже его протестировали? Используйте 'data [409]'. – usandfriends

ответ

1

Поскольку вы не всегда знаете, ключ возвращается (409 или 201), вы можете получить ответное сообщение данных, выполнив:

data[Object.keys(data)[0]] 

Это даст вам доступ к data[409] или data[201]

+0

спасибо @Peter –

+0

дайте нам больше пояснений по этой строке @peter, он отлично работает, но я не знаю, как –

+0

Object.keys() возвращает массив, элементы которого являются строками, соответствующими перечислимым свойствам, найденным непосредственно на объекте. Заказ свойств такой же, как и задание путем циклического изменения свойств объекта вручную. Исправлено из https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/keys – Peter

1

Попробуйте как этот

console.log(data["409"]); 
0
success: function(data){ 
    var obj = jQuery.parseJSON(data); 
    console.log(obj['yourfieldname_in_json']); 
} 
+0

console.log (obj ['409']); –

+0

вы также можете сделать это, чтобы получить доступ к значению console.log (obj [0] [0]); –

+0

, пожалуйста, добавьте краткое описание того, как это решает проблему адеектов. Добро пожаловать в Stack Overflow, рекомендуется прочитать [ответ]. –

0

Код:

success: function(data) { 
     if(data["409"]){   
     console.log(data["409"]); 
     } 
     else{ 
     console.log(data["201"]);   
     } 
    } 
Смежные вопросы