2016-12-26 29 views
8

Mój skrypt zwraca [object Object] w wyniku console.log(result).console.log (result) zwraca [object Object]. Jak mogę uzyskać result.name?

Czy ktoś może wyjaśnić, jak uzyskać console.log zwrócić id i name z result?

$.ajaxSetup({ traditional: true }); 

var uri = ""; 

$("#enginesOuputWaiter").show();  
$.ajax({ 
    type: "GET", 
    url: uri, 
    dataType: "jsonp", 
    ContentType:'application/javascript', 
    data :{'text' : article}, 
    error: function(result) { 
     $("#enginesOuputWaiter").hide(); 
     if(result.statusText = 'success') { 
      console.log("ok"); 
      console.log(result); 
     } else { 
      $("#enginesOuput").text('Invalid query.'); 
     } 
    } 
}); 
+0

Czy próbowałeś to przeanalizować? '[object Object]' jest po prostu reprezentacją ciągów, a nie tym, jak wygląda obiekt. – Carcigenicate

+0

Ta usługa wydaje się zwracać JSON, a nie JSONP, więc powinieneś zmienić 'typ danych'. Prawdopodobnie to właśnie dlatego wywoływany jest twój handler ** 'error' **, w którym prawie nie uzyskasz pomyślnego wyniku. – Bergi

+0

Masz symbol BOM w swojej odpowiedzi: http://joxi.ru/vAWVVbh1k34N2W naprawiono Twój kod php, oczyszczenie niepotrzebnych BOMów kodowania UTF8 – num8er

Odpowiedz

20

Użyj console.log(JSON.stringify(result)), aby uzyskać JSON w formacie ciągu.

EDIT: Jeśli twoim zamiarem jest, aby identyfikator i inne właściwości z obiektu wynikowego i chcesz zobaczyć go pocieszyć wiedzieć, czy jej tam wtedy można sprawdzić z hasOwnProperty i dostępu do właściwości, jeśli istnieje:

var obj = {id : "007", name : "James Bond"}; 
console.log(obj);     // Object { id: "007", name: "James Bond" } 
console.log(JSON.stringify(obj)); //{"id":"007","name":"James Bond"} 
if (obj.hasOwnProperty("id")){ 
    console.log(obj.id);    //007 
} 
4

Spróbuj dodać JSON.stringify(result), aby przekonwertować obiekt JS na ciąg JSON.

Z Twojego kodu widzę, że logujesz wynik w error, który jest wywoływany, jeśli jest to AJAX request fails, więc nie jestem pewien, w jaki sposób chcesz uzyskać dostęp do id/name/etc. następnie (sprawdzasz, czy odniosłeś sukces w stanie błędu!).

Pamiętaj, że jeśli używasz konsoli Chrome, powinieneś móc przeglądać obiekt bez konieczności wiązania JSON, co ułatwia debugowanie.