2017-09-24 1 views
0

J'ai deux des serveurs express ...CORS ne fonctionne pas dans Express après config

Server 1: API fonctionne sur le port 3010

Server 2: l'interface utilisateur fonctionne sur le port 3000

Sur le serveur 1 dans le fichier app.js (autogène) Je suit ...

// Allow requests from the ui 
app.use(function (req, res, next) { 
    // TODO: Make specific 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); 
    res.header('Access-Control-Allow-Headers', 'Content-Type'); 

    next(); 
}); 

Mais lorsque je tente de POST à ​​cette adresse d'un serveur 2 page je reçois ce qui suit dans la console Chrome ....

Failed to load http://localhost:3010/search: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

J'ai aussi essayé res.header('Access-Control-Allow-Origin', 'http://localhost:3000'); et d'autres, mais aucun ne semble travailler

Qu'est-ce que je manque?

+0

Vous pouvez également jeter un coup d'œil à [cors] (https://www.npmjs.com/package/cors). – pzaenger

+0

@pzaenger merci mais voir ma réponse il ressemble à l'autogen express vissage d'un middleware prochain appel quelque part – Jackie

+0

Ah, d'accord. Je vois. Il se peut que vous ayez raison ;) – pzaenger

Répondre

0

J'ai déplacé le app.use en avance sur les autres applications générées et il semble fonctionner. Vous ne savez toujours pas pourquoi, deviner qu'un élément de middleware dans l'autogène n'appelle pas correctement ensuite.