我是 NestJS 的新手,在我的网络应用程序尝试查询的每条路线上,它都在 OPTIONS 请求上失败,得到:
{"statusCode":404,"error":"Not Found","message":"Cannot OPTIONS /authenticate"}
但是尝试直接 GET 或 POST 请求可以正常工作。
我是 NestJS 的新手,在我的网络应用程序尝试查询的每条路线上,它都在 OPTIONS 请求上失败,得到:
{"statusCode":404,"error":"Not Found","message":"Cannot OPTIONS /authenticate"}
但是尝试直接 GET 或 POST 请求可以正常工作。
经过一些研究,我意识到我只需要启用 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();