2016-12-26 65 views
8

我的腳本返回[object Object]console.log(result)的結果。console.log(result)返回[object Object]。我如何獲得result.name?

有人可以請解釋如何有console.log返回idnameresult

$.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

你嘗試解析它? '[object Object]'只是一個字符串表示,而不是對象的實際外觀。 – Carcigenicate

+0

該webservice似乎返回JSON而不是JSONP,所以你應該改變你的'dataType'。這也可能是爲什麼你的**'error' **處理程序被調用的地方,你很難得到一個成功的結果。 – Bergi

+0

你在你的反應已經BOM符號:http://joxi.ru/vAWVVbh1k34N2W所以修復你的PHP代碼,清理不必要的utf8編碼的BOM – num8er

回答

20

使用console.log(JSON.stringify(result))得到JSON字符串中的格式。

編輯:如果你的目的是要得到結果對象中的ID和其他屬性,你想看到它安慰知道,如果它的存在,那麼你就可以hasOwnProperty檢查和訪問屬性,如果它存在:

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

嘗試增加JSON.stringify(result)的JS對象轉換成JSON字符串。

從你的代碼我可以看到你正在記錄error的結果,如果AJAX request fails被調用,所以我不知道你會如何去訪問id/name/etc。然後(你正在檢查錯誤情況下的成功!)。

請注意,如果您使用Chrome的控制檯,你應該能夠通過對象瀏覽,而不必字符串化JSON的,這使得它更容易調試。

相關問題