如何解析响应[对象对象]

如何解析响应[对象对象]

问题描述:

该请求正在从href=url的onclick发送。当这个URL被命中时,我将从服务器到客户端的数据作为查询字符串返回。如何解析响应[对象对象]

res.redirect("/#blog_post_details/?dataUrl="+response[0].attributes); 

当我打印使用:

var posts = DataMixin.getParameterByName(dataUrl); 
console.log('posts', posts); //I get [Object, Object] 

我也试图与JSON.Stringifyconsole.log('posts', JSON.Stringify(posts)); 其打印带有引号"[Object,Object]"

函数返回的查询字符串相同:

getParameterByName: function (name, url) { 
    if (!url) { 
     url = window.location.href; 
    } 
    name = name.replace(/[\[\]]/g, "\\$&"); 
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
     results = regex.exec(url); 
    if (!results) return null; 
    if (!results[2]) return ''; 
    return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 

但是,我能够打印服务器响应数据:

{ created_at: '4/3/2017, 1:23:28 AM', 
    details: 'jjj', 
    id: 136, 
    post_id: '1491162808010', 
    title: 'Basic Syntax and Tag declaration', 
    url: 'basic_syntax_and_tag_declaration', 
    userImage: 'assets/img/spiritual-icon4.png', 
    username: '[email protected]' } 

注:我使用expressjs与

的NodeJS

[Object, Object]是你值发送。解析它不会有什么好处,解析没有任何用处。

您需要解决您如何发送数据。

编码它作为JSON是一种方法:

var values = response[0].attributes; 
var json_values = JSON.stringify(values); 
var url_safe_json_values = encodeURIComponent(json_values); 
res.redirect("/#blog_post_details/?dataUrl=" + url_safe_json_values 

然后你在另一端解析JSON(与JSON.parseJSON.stringify(它解析相反)!)。

+0

编码响应工作,但我想知道为什么会发生这种情况?数据传输过程中没有编码会发生什么 – kittu

+1

您接受了一个字符串,并在右侧使用了带有对象的'+'运算符。这隐含地调用对象的'toString()'。返回字符串'“[object Object]”' – Quentin

+0

好吧,现在我明白了。谢谢 – kittu