web-dev-qa-db-ja.com

Nodejs Hapi-Origin間のアクセス制御を有効にする方法

私はHapiJs Restful Webサービスで作業しており、corsを有効にして、異なるドメインのクライアントでもサービスを利用できるようにしています。サーバー接続オブジェクトでcors = trueを試しましたが、機能しませんでした。

14
Gunjan Kumar

どこに置いたかcors=true?コードを追加してもらえますか?

あなたがどこに置いたか正確に知らないでcors = true、このコードのコードはあなたを助けるかもしれません:

server.connection({ routes: { cors: true } })

または、ルートの構成セクションに許可されたコアを追加してみてください。

server.route({
    config: {
        cors: {
            Origin: ['*'],
            additionalHeaders: ['cache-control', 'x-requested-with']
        }
    },

この質問を見てください: hapi.js Cors Pre-flightがAccess-Control-Allow-Originヘッダーを返さない

23
James111

@ James111 の回答への追加、

その答えがうまくいかなくても。送信する追加のAuthヘッダーを確認します。

私の場合はX_AUTH_TOKEN、つまりadditionalHeadersでは、カスタムヘッダーも追加することができます。

例えば.

additionalHeaders: ['cache-control', 'x-requested-with', 'X_AUTH_TOKEN']
0
shyammakwana.me

Hapi 18で動作する回避策を見つけました。hapi-corsプラグインをインストールし、正しいlocalhostポートを設定してから、プラグインをセットアップしてください。


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