2016-12-26 23 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的,这使得它更容易调试。

相关问题