如何解析响应[对象对象]
问题描述:
该请求正在从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.Stringify
: console.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.parse
不JSON.stringify
(它解析相反)!)。
编码响应工作,但我想知道为什么会发生这种情况?数据传输过程中没有编码会发生什么 – kittu
您接受了一个字符串,并在右侧使用了带有对象的'+'运算符。这隐含地调用对象的'toString()'。返回字符串'“[object Object]”' – Quentin
好吧,现在我明白了。谢谢 – kittu