0
votes

req.body est vide et je ne peux pas comprendre pourquoi

Je suis nouveau à exprimer et à envoyer un noeud et j'essaie de faire un post Axios sur mon serveur, mais le req.bybody est vide quand je console.log dans le nœud. Quelqu'un sache ce que je fais mal? Je suis console de la journalisation et de l'envoi à Postman.

Voici Server.js xxx

mon axios appelle xxx


10 commentaires

La demande est envoyée via axios ci-dessus ou postman? Toute erreur dans l'onglet réseau ou la console? au-dessus du code a l'air bien


Envoyé via axios aucune erreur dans la console. Je suis exclu


Voyez-vous votre console.log in Handlesubmit () ??


Oui je le vois


Il passe, alors c'est quelque chose sur mon serveur?


app.utilisez (bodyparser.json ({type: 'Application / * + JSON'})); // dans server.js


Cela ressemble à une manipulation de Cors manquante. Surtout si cela fonctionne dans Postman (parce que le facteur ne se soucie pas de CORS). Il devrait y avoir une erreur dans votre console de navigateur, assurez-vous de ne rien filtrer. (Activer le niveau verbeux)


Cela ne fonctionne pas non plus dans le postman.


Oh mon mauvais. Vous allez toujours en avoir besoin pour les demandes postales croisées. J'essaierais alors d'ajouter un .Catch (console.error) à votre axios appelle


Et ensuite, essayez une itinéraire Wildcard Express app.all ('*', (req, res) => {...}) Pour vous assurer que vous ne manquez rien. Comme une demande d'options: PP (retour à Cors, désolé)


4 Réponses :


0
votes

essayer ceci Dans serveur.js: xxx

axios appelle: xxx


6 commentaires

Malheureusement, cela ne fonctionne toujours pas. Je ne sais pas quoi d'autre essayer


Voyez-vous quelque chose de votre serveur?


Lorsque je appuie sur Soumettre pour mon axios appelle, rien ne se passe sur mon serveur, mais quand je l'ai frappé avec Postman, il affiche corps: {}


Je ne sais pas non plus vraiment pourquoi vous utilisez Postman, pourquoi ne pas simplement le sortir de la chaîne? On dirait que vous avez un avant / et un backend.


Eh bien, choisissez-en un pour déboguer à la fois, Postman est censé émuler un front-end, c'est moins que si vous avez un front. On dirait que le facteur passe à travers alors, il faut donc consister à mettre en place un postman différemment. Où entrez-vous vos données de formulaire dans Postman.


Je devrais voir le reste du formulaire pour vous aider à comprendre pourquoi votre application de réaction ne fonctionne pas.



0
votes

Essayez de mettre l'URL comme http: // localhost: 4444 / envoyer dans votre axios Call: XXX


1 commentaires

Cela a fonctionné après que j'ai ajouté Cors à mon serveur Express. J'ai juste besoin d'ajouter un proxy. Merci.



0
votes

OK, voici ce que je pense après avoir lu tous les commentaires ci-dessus.

  1. Vous avez dit, lorsque vous envoyez la demande via Postman, c'est Console.Log Un req vide. Donc, il n'y a pas de problème avec votre URL. Il se dirige vers corriger le routeur. Postman a 3 types de contenu. Il suffit de sélectionner "X-www-form-urlencoded" et envoyez la demande à nouveau. Cela devrait fonctionner.
  2. Dans votre composant, vous avez dit que rien ne se produise après la soumission. Le problème le plus probablement devrait être avec votre URL. Votre serveur de backend s'exécute sur le port 4444 et réagit habituellement à l'exécution de l'application sur le port 3000. Donc, lorsque vous appelez Axios.post ('/ Envoyer'), il est effectivement envoyé à localhost: 3000 / serveur au lieu de Localhost: 4444 / serveur . Maintenant, cela ne fonctionnera pas. Vous devez mettre en place un proxy pour éviter ce problème. Voici la façon dont https: //facebook.github .io / Création-réact-APP / DOCS / API-API-Demandes-in-Development . Ou vous pouvez simplement utiliser axios.post ('http: // localhost: 4444 / serveur')

    Remarque: Si vous utilisez axios.post ('http: // localhost: 4444 / serveur') , vous ferez face au problème CORS. Utilisez ceci pour éliminer ce problème https://www.npmjs.com/package/cors < / em>


0 commentaires

0
votes

Ceci est généralement causé par la définition de l'extension d'urlencode à true, essayez ceci: xxx


0 commentaires