0
votes

Ne peut pas définir le corps de la requête postale à l'aide de HTTPCLIDe angulaire Edit Je ne suis pas capable de faire (mettre, supprimer, poster n'importe quelle demande uniquement GET fonctionnent)

Je suis nouveau dans l'angulaire et le noeud que j'ai créé un point de fin de repos dans Nodejs qui ressemble à ceci (Mettre à jour cela fonctionne, mais seulement si je définissais l'en-tête de la demande à l'application / X-www-Form-Urlencodé, mais que le corps Requeus ressemble à {{"rolename": "nouveau rôle"}: ""} Ceci est instancé de { rolename: "newrole"}) xxx

et je fais une demande postale d'une application angulaire qui ressemble à ceci xxx

mais le Un problème est que je suis incapable de définir le corps de la demande lorsque vous utilisez Postman, cela fonctionne comme il le devrait, mais de l'angulaire, le corps est toujours vide que j'ai même essayé d'utiliser à la place, mais le même problème est même essayé de définir les en-têtes et les méthodes dans l'application de nœuds Comme ceci xxx

mais toujours, aucun succès dans la demande postale, cependant, obtenir la demande fonctionne bien et que j'essaie de faire une demande de post à cette URL de JSON Placeholder https://jsonplaceholder.typicode.com/posts ça marche bien je suis incapable de comprendre quel est le bug et je Connaissez le lien JSON Works car il donne gâte le corps de t Il demande dans la réponse et si je n'utilise pas JSON.Stringify, j'obtiens Erreur Corse, mais selon la documentation doit fonctionner correctement, mais il ne veut pas que la demande d'obtention ressemble à ceci xxx

}

si j'ajoute {en-têtes: httpheader} avec l'erreur de Cors de Requeus, mais si utilisez-le sans cela ça marche bien. Je ne peux pas faire mettre en place la suppression ou la demande de poste, mais ils travaillent dans Postman, j'ai même essayé de définir les en-têtes de type de contenu et d'alloe-Acccess, mais rien ne semble fonctionner

C'est le service angulaire où je fais la demande < / p> xxx

ceci est le code de nœud xxx

si je définis l'en-tête pour obtenir une demande, même si cela freine < / p>


7 commentaires

Qu'est-ce que cette ligne console.log (JSON.Stringify (rôle)); dans votre Addrole Déconnexion de la console?


oui l'utilisait pour voir que les données y arrivent ou non


Ma question est, what imprime-t-il sur la console? Pouvez-vous s'il vous plaît ajouter le contenu qui est connecté à votre question?


La console.log en caractères de code angulaire "{" rolename ":" Newrole "}" (Newrole est ce que je passe) et la pièce de connexion de la console NODE imprime l'objet de demande avec un corps vide


{"Rolename": "D"} Il enregistre ceci


Avez-vous essayé de définir les options HTTPHEADRS pour le type de contenu?


Oui, je l'ai fait si je définissais le type de contenu, je reçois une erreur Cors, aucune erreur est que les données sont les données ou JSON I.E I obtenez une erreur CORS, peu importe si je le fais de JSON.Stringifier ou non


3 Réponses :


0
votes

Vous n'avez pas besoin de régler le corps, vous pouvez transmettre l'objet lui-même. Il suffit de supprimer console.log (json.stringify (rôle)); et essayer.


5 commentaires

Accès à xmlhttprequest à ' 127.0.0.1:3000/Roles ' de l'origine ' Localhost: 4200 'a été bloqué par la stratégie CORS: la réponse à la demande de préfixe ne passe pas la vérification du contrôle d'accès: il n'a pas l'état HTTP OK.


Si la demande d'obtention fonctionne bien, pouvez-vous ajouter le code à la question. Vous devez également réparer toute erreur de Cors que vous obtenez en ajoutant des en-têtes appropriés à la demande.


essayez de régler à la fois angulaire et noeud


Si je le fais dans Angular Même Get Demande donne une erreur Cors


Si j'ajoute de type de contenu dans l'angulaire, j'obtiens une erreur de Cors même si je fais un stringify



0
votes

Dans votre noeud JS Code, essayez de mettre en place une partie d'origine de la couche intermédiaire avant de lire le corps de la demande entrante. Cela signifie que vous devez déplacer la couche intermédiaire du parseur de corps après la partie d'origine. Pour le code angulaire dans l'en-tête, ajoutez simplement le type de contenu. C'est une supposition, donnez ceci un essai. Peut-être que cela vous aidera.

--- Code angulaire --- xxx


6 commentaires

Est-ce que cela fonctionne, mais seulement si définit l'en-tête vers l'application / X-www-form-urlencode, mais le corps ressemble alors à ce {{"rolename": "Nouveau"}: ""} Installée de {Rolename: "Nouveau"}


Quel est le type de contenu dans votre application angulaire?


S'il vous plaît montrez-nous le code angulaire complet. y compris où vous définissez l'en-tête.


a vu la question


Si je ne donne pas d'en-têtes, je ne reçois pas d'erreur de Cors, mais le corps ne se met pas en place


J'ai édité ma réponse. Vérifiez que vous espérez que cela vous aidera.



0
votes

1) Si votre backend est NodeJS, assurez-vous d'installer "Cors":

npm install --save body-parser 
npm install --save @types/body-parser
import bodyParser , {urlencoded} from 'body-parser';
app.use(bodyParser.json());
app.use(urlencoded({ extended: true }));


0 commentaires