Je travaille sur le service Web HapiJs Restful et j'essaie d'activer les cors pour que tout client, même d'un domaine différent, puisse consommer mes services. J'ai essayé cors = true dans l'objet de connexion au serveur mais cela n'a pas fonctionné.
Où avez-vous mis cors=true
? Pourriez-vous ajouter du code?
Sans savoir exactement où vous avez mis cors = true
, ce bout de code peut vous aider:
server.connection({ routes: { cors: true } })
Ou essayez d'ajouter les cors autorisés dans la section de configuration de votre itinéraire.
server.route({
config: {
cors: {
Origin: ['*'],
additionalHeaders: ['cache-control', 'x-requested-with']
}
},
Jetez un œil à cette question: hapi.js Cors Pre-flight ne renvoyant pas l'en-tête Access-Control-Allow-Origin
Ajout à la réponse de @ James111 ,
Même si cette réponse ne fonctionne pas pour vous. vérifiez les en-têtes Auth supplémentaires que vous envoyez.
Dans mon cas, c'était X_AUTH_TOKEN
, donc dans additionalHeaders
, vous pouvez également ajouter votre en-tête personnalisé.
par exemple.
additionalHeaders: ['cache-control', 'x-requested-with', 'X_AUTH_TOKEN']
J'ai trouvé une solution de contournement, qui fonctionne dans Hapi 18. Veuillez installer le plugin hapi-cors, définir le port localhost correct puis configurer le plugin:
const start = async function () {
try {
await server.register({
plugin: require('hapi-cors'),
options: {
origins: ['http://localhost:4200']
}
});
await server.start();
console.log('server started');
} catch (err) {
console.log(err);
process.exit(1);
}
};
start();