2017-09-27 1 views
-1

In eckigen 4, Wie kann ich nur JSON als Daten veröffentlichen?Kann ich nur JSON als Daten in Angular posten?

Derzeit meine Postleitzahl ist:

let options = { 
    headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded) 
}; 

let urlSearchParams = new URLSearchParams(); 

urlSearchParams.append('key', 'value'); 

let bodyString = urlSearchParams.toString(); 

return this.http.post(api, bodyString, options); 

Wie man sehen kann ich application/x-www-form-urlencoded und URLSearchParams vor post verwenden. (was funktioniert)

Ich denke, es wird eine Möglichkeit geben, nur JSON zu verwenden. (z. B. this.http.post(api, MY_JSON))

Ich habe versucht new HttpHeaders().set('Content-Type', 'application/json') aber kein Glück.

Die unten ist, was ich will:

let options = { 
    headers: new HttpHeaders().set('Content-Type', 'application/json) 
}; 

return this.http.post(api, MY_JSON, options); 

Wenn ich wie das oben, alles posten richtig geschrieben ist, aber keine Reaktion vom Server.

Sollte ich Back-End überprüfen?

+0

URL-Suchparameter sind für Abfragezeichenfolgen, z. '? Schlüssel = Wert', * in der URL *. Was genau sollte die * Nutzlast *, der Körper der Anfrage, sein? Sie * können Arrays und Objekte übergeben und serialisieren lassen. – jonrsharpe

+0

Wenn Sie den JSON-Content-Type-Header verwenden, können Sie das JSON-Objekt als zweiten Parameter von .post() übergeben. – LLai

+0

@jonrsharpe Ich habe mehr EXPLAIN hinzugefügt. Ich weiß, dass URLSearchParams für Abfragezeichenfolge ist. Allerdings scheint es für mich bisher nur winkelig zu sein. Wenn es kein Problem im Code "Der unten ist was ich will" gibt, sollte ich Back-End überprüfen? –

Antwort

0

Es war Back-End-Konfiguration.

In symfony3 (PHP), einfach json_decode() ausführen, um Json vom Front-End zu bekommen.

Verwandte Themen