使用 NestJS 在 OPTIONS 上找不到 404
Getting 404 Not Found on OPTIONS with NestJS
我是 NestJS 的新手,在我的网络应用程序尝试查询的每条路线上,它都在 OPTIONS 请求上失败,得到:
{"statusCode":404,"error":"Not Found","message":"Cannot OPTIONS
/authenticate"}
但是尝试直接 GET 或 POST 请求工作正常。
经过一些研究,我意识到我只需要 enable CORS (Access-Control-Allow-Origin),我可以通过编辑我的 main.ts
并传递 cors: true
到 NestFactory.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();
关于 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,
}});
.....
还有人在寻找答案
app.enableCors();
我是 NestJS 的新手,在我的网络应用程序尝试查询的每条路线上,它都在 OPTIONS 请求上失败,得到:
{"statusCode":404,"error":"Not Found","message":"Cannot OPTIONS /authenticate"}
但是尝试直接 GET 或 POST 请求工作正常。
经过一些研究,我意识到我只需要 enable CORS (Access-Control-Allow-Origin),我可以通过编辑我的 main.ts
并传递 cors: true
到 NestFactory.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();
关于 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,
}});
.....
还有人在寻找答案
app.enableCors();