web-dev-qa-db-ja.com

NestJSのオプションで404が見つからない

私はNestJSを使い始めたばかりですが、私のWebアプリがクエリしようとしているすべてのルートで、OPTIONSリクエストで失敗し、次のようになります。

{"statusCode":404、 "エラー": "見つかりません"、 "メッセージ": "オプション/ authenticateを実行できません"}

ただし、直接GETまたはPOSTリクエストを試行するとうまくいきます。

11
Francesco Borzi

いくつかの調査の後、私は 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();
11
Francesco Borzi

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,
  }});
.....
4
mumblesNZ