15

我是 NestJS 的新手,在我的网络应用程序尝试查询的每条路线上,它都在 OPTIONS 请求上失败,得到:

{"statusCode":404,"error":"Not Found","message":"Cannot OPTIONS /authenticate"}

但是尝试直接 GET 或 POST 请求可以正常工作。

4

3 回答 3

19

经过一些研究,我意识到我只需要启用 CORS(Access-Control-Allow-Origin),我可以通过编辑我的main.ts并传递cors: trueNestFactory.create选项(第二个参数)来做到这一点。

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();
于 2018-05-15T15:37:01.783 回答
10

有关 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 拦截你的预检请求,但也只允许来自服务器内部的源请求,你可以使用这个配置:

.....
  const app = await NestFactory.create(ApplicationModule, {cors: {
    origin: true,
    preflightContinue: false,
  }});
.....
于 2018-06-05T12:40:00.623 回答
0

还在寻找答案的人

app.enableCors();
于 2021-08-26T19:02:52.263 回答