私はNestJSを使い始めたばかりですが、私のWebアプリがクエリしようとしているすべてのルートで、OPTIONSリクエストで失敗し、次のようになります。
{"statusCode":404、 "エラー": "見つかりません"、 "メッセージ": "オプション/ authenticateを実行できません"}
ただし、直接GETまたはPOSTリクエストを試行するとうまくいきます。
いくつかの調査の後、私は enable CORS (Access-Control-Allow-Origin)を必要とするだけであることに気付きました。これはmain.ts
と渡すcors: true
からNestFactory.create
オプション(2番目のパラメーター)。
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule, { cors: true });
await app.listen(3000);
}
bootstrap();
CORSに関する追加情報(次の方法で有効にした場合):
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule, { cors: true });
await app.listen(3000);
}
bootstrap();
これにより、どのドメインからのクロスオリジンリクエストも許可されます。通常、これはセキュリティのベストプラクティスではありません。
CORSにプリフライトリクエストのインターセプトを許可し、サーバー内からのOriginリクエストのみを許可する場合は、次の構成を使用できます。
.....
const app = await NestFactory.create(ApplicationModule, {cors: {
Origin: true,
preflightContinue: false,
}});
.....