2017-09-27 7 views
-1

En angulaire 4, comment puis-je publier uniquement des données JSON?Puis-je publier uniquement JSON en tant que données dans Angular?

Actuellement, mon code postal est:

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); 

Comme vous pouvez le voir, je me sers application/x-www-form-urlencoded et URLSearchParams avant post. (qui fonctionne)

Je pense qu'il y aura un moyen d'utiliser seulement JSON. (par exemple this.http.post(api, MY_JSON))

J'ai essayé new HttpHeaders().set('Content-Type', 'application/json') mais pas de chance.

Ce qui suit est ce que je veux:

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

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

Si je poste comme ci-dessus, tout est affiché correctement, mais pas de réaction du serveur.

Dois-je vérifier le système d'exploitation?

+0

Les paramètres de recherche d'URL sont pour des chaînes de requête, par ex. '? key = value', * dans l'URL *. Que devrait exactement être le * payload *, le corps de la requête, être? Vous * pouvez * transmettre des tableaux et des objets à publier et les faire sérialiser. – jonrsharpe

+0

Si vous utilisez l'en-tête de type de contenu json, vous pouvez passer l'objet json comme deuxième paramètre de .post() – LLai

+0

@jonrsharpe J'ai ajouté plus d'explications. Je sais que URLSearchParams est pour la chaîne de requête. Cependant, il semble que ce soit seulement un moyen de poster angulaire jusqu'à présent pour moi. S'il n'y a pas de problème dans le code "Ci-dessous est ce que je veux", devrais-je vérifier back-end? –

Répondre

0

C'était la configuration dorsale.

Dans symfony3 (PHP), exécutez simplement json_decode() pour obtenir json de front-end.