2017-04-03 139 views
0

該請求正在從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

回答

3

[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