web-dev-qa-db-fra.com

Nodejs Hapi - Comment activer le contrôle d'accès croisé d'origine

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é.

14
Gunjan Kumar

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

23
James111

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']
0
shyammakwana.me

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();

0
Kamil Naja