2016-04-16 4 views
0

Ich versuche, Daten an meinen NodeJS Server mit Express zu senden.AngularJS HTTP nach dem Senden Objekt mit Schlüssel als ganze Daten und Wert leer

Das Problem ist, dass, wenn ich den HTTP-Post mache, die Daten in ein Objekt eingewickelt werden, wo die Daten der Schlüssel in diesem Objekt sind, und der Wert wird leer.

http({ 
    method: 'POST', 
    url: '/api/booking', 
    data: {test:"data"}, 
    headers: { 
     'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' 
    } 
    }).then(function successCallback(response) { 
     console.log(response) 
    }, function errorCallback(response) { 
     console.log("API request failed: "+response); 
    }); 

die Antwort wird so sein;

{ '{"test":"data"}': '' } 

Ich habe eine Tonne verschiedener Lösungen versucht, die ich gesucht habe. Aber ich kann nicht herausfinden, was das Problem ist.

Ich habe auch versucht, mit Postboten, und in diesem Fall funktioniert es gut.

Danke !!

Problem nicht gelöst, aber umgangen;

JSON.parse(Object.keys(req.body)[0]); 

auf der Serverseite.

Antwort

0

Haben Sie versucht {'test':'data'}?

+0

Ja, analysieren Ich habe Ich habe es versucht. Gleiche Antwort .. – Wipesh

+0

Haben Sie Ihre API mit einem anderen Werkzeug wie Postboten versucht? Das Ergebnis ist dasselbe? – qchap

+0

Ja ... und das Objekt ist korrekt, wenn ich es mit Postboten sende, was noch störender ist. – Wipesh

0

Haben Sie versucht, die Daten zu codieren oder zu stringieren?

window.encodeURIComponent({test:"data"}) 

oder

JSON.stringify({test:"data"}) 
+0

Keine funktioniert .. vielen Dank aber. Ich habe versucht, die Version von angular, die ich benutze, im Falle von Fehlern zu ändern. Aber es hat nichts verändert. – Wipesh

0

Sie müssen nur den folgenden Code auf den Server-Datei hinzufügen, wird dies die eingehenden json Anfragen für Sie

app.use(bodyParser.json());

Verwandte Themen