2017-04-03 3 views
0

Die Anfrage wird von onclick href=url gesendet. Wenn diese URL gefunden wird, gebe ich Daten vom Server zum Client als Abfragezeichenfolge zurück.Antwort analysieren [Objekt Objekt]

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

Und wenn ich drucken mit:

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

ich auch mit JSON.Stringify versucht: console.log('posts', JSON.Stringify(posts)); die druckt das gleiche mit Zitaten "[Object,Object]"

Funktion Query-String zurück:

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, " ")); 
} 

Aber ich bin in der Lage Antwortdaten auf dem Server drucken:

{ 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]' } 

Hinweis: Ich verwende Express.js mit NodeJS

Antwort

3

[Object, Object] ist der Wert, den Sie sind Senden. Parsing wird nichts nützen, es gibt nichts nützliches zu parsen.

Sie müssen korrigieren, wie Sie die Daten senden.

es als JSON-Kodierung ist ein Ansatz:

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 

dann Sie die JSON analysieren (mit JSON.parse nicht JSON.stringify (was das Gegenteil von dem Parsen der Fall ist)!) Am anderen Ende.

+0

Codierung der Antwort funktionierte, aber ich möchte wissen, warum ist das passiert? Was passiert bei der Datenübertragung ohne Verschlüsselung? – kittu

+1

Sie haben eine Zeichenfolge genommen und den Operator '+' mit einem Objekt auf der rechten Seite verwendet. Dies ruft implizit 'toString()' für das Objekt auf. Das gibt den String "[Objekt Objekt]" zurück – Quentin

+0

Okay, jetzt verstehe ich. Vielen Dank – kittu

Verwandte Themen