-1
votes

Configuration express + React, Cors

Hey, j'essaie de faire du travail mon express avec réagir localement. Je commence à réagir sur localhost: 3000 et express sur 4040 mais d'une manière ou d'une autre, mes cors ne fonctionnent pas. J'ai autorisé dans mon serveur.js Tous les corsques: xxx

mais toujours après avoir essayé de Fetch Data de Express, dans mon réact , Je reçois:

accès à la récupération de 'http: // localhost / 4040 / assistant' de l'origine 'http: // localhost: 3000' a été bloqué par la stratégie CORS: Non "L'en-tête" Access-Control-Autory-Origin 'est présent sur la demande demandée Ressource. Si une réponse opaque sert vos besoins, définissez la demande Mode à 'No-Cors' pour récupérer la ressource avec Cors désactivé.

Qu'est-ce que je manque?


8 commentaires

Est-ce que cela fonctionne sans les options de CORS? En ayant simplement app.use (Cors ())


Malheureusement, n'atteignez pas cette erreur particulière, pourrait-elle avoir quelque chose avec moi en récupérant des données par récupération à l'avant ou son numéro de serveur à 100%?


Ok, cela peut sembler trivial, mais puisque je ne le vois pas dans votre code: avez-vous besoin de CORS? Tout d'abord en l'installant npm i cors , puis const cors = nécessite ("CORS ') avant de l'ajouter à exprimer?


Yup j'ai ces personnes, pourrait-elle être quelque chose avec des fausses ports? Je n'ai aucune idée que les deux applications sont bien définies, je pense


Je dirais que ce type de réponse a à voir avec le serveur ne dépend pas de la façon dont vous le demandez. J'espère que je ne suis pas trompé. Ne pense pas que cela vient des ports. Vous pouvez essayer de les changer à 5000 et 8080, mais je pense que cela pourrait se retrouver avec le même résultat


J'ai eu une idée, vérifiez la réponse que j'ai éditée. J'espère que ça va marcher


N'utilisez pas le cors () middleware et votre propre middleware personnalisé qui fait la même chose!


Thing drôle, j'ai trouvé le problème après la 2ème journée, c'était localhost / 4040 ....


3 Réponses :


0
votes

Par chance, j'ai peut-être repéré une erreur: votre itinéraire '/ intervenant' code> doit répondre à une demande d'obtention. Essayez-moi et dites-moi si cela fonctionne!

app.all('/attendant', function (req, res, next) {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader('Access-Control-Allow-Methods', '*');
  res.setHeader("Access-Control-Allow-Headers", "*");
  next(); // pass control to the next handler
});


0 commentaires

1
votes

L'ordre que vous appliquez des itinéraires et du middleware en matière.

Vous devez affecter le middleware Cors avant l'itinéraire qui le nécessite, sinon il ne sera pas exécuté.

Étant donné que l'en-tête ACCESS-CONTROL-CONTROL-INTERRY-ORIGINE est signalé comme manquant, vous devez les attribuer dans l'autre ordre.

Modifier la commande: xxx


0 commentaires

0
votes

Vous n'avez pas besoin de CORS pour communiquer avec votre serveur. Créer-React-App a une fonctionnalité appelée proxy . Il vous permet de proxy toutes vos demandes de: 4040

in package.json , ajoutez l'entrée suivante à la fin: xxx

Envoyez vos demandes à votre serveur de réact: 3000. Exemple: récupération ('/ API / Exemple /') et fonctionnera sans avoir aucun problème de cors


0 commentaires