私はHapiJs Restful Webサービスで作業しており、corsを有効にして、異なるドメインのクライアントでもサービスを利用できるようにしています。サーバー接続オブジェクトでcors = trueを試しましたが、機能しませんでした。
どこに置いたか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ヘッダーを返さない
@ James111 の回答への追加、
その答えがうまくいかなくても。送信する追加のAuthヘッダーを確認します。
私の場合はX_AUTH_TOKEN
、つまりadditionalHeaders
では、カスタムヘッダーも追加することができます。
例えば.
additionalHeaders: ['cache-control', 'x-requested-with', 'X_AUTH_TOKEN']
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();