[Nestjs] Resolva problemas de vários domínios

No desenvolvimento front-end e back-end, frequentemente encontramos problemas entre domínios que precisam ser resolvidos. A seguir, apresentamos brevemente como resolver problemas de domínio cruzado no Nestjs.

Primeiro, instale o módulo @nestjs/commondo pacote cors.

npm install --save @nestjs/common

Use o middleware CORS globalmente: no módulo raiz do seu aplicativo NestJS (geralmente app.module.ts), use app.use()o método para habilitar globalmente o middleware CORS

import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { CorsMiddleware } from '@nestjs/common';

@Module({
  imports: [],  // 导入其他模块
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(CorsMiddleware).forRoutes('*');
  }
}

O método no código acima configure()usa CorsMiddlewareo middleware e o aplica a todas as rotas. Você também pode limitar solicitações de origem cruzada especificando rotas específicas.

Configurações personalizadas de CORS: se precisar personalizar as configurações de CORS, você pode passar um objeto de configuração para apply()o método e definir as opções necessárias nele

import { CorsOptions } from '@nestjs/common/interfaces/external/cors-options.interface';

const corsOptions: CorsOptions = {
  origin: 'http://example.com',  // 设置允许请求的来源
  methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',  // 设置允许的 HTTP 方法
  allowedHeaders: 'Content-Type,Authorization',  // 设置允许的请求头
};

// 在 configure() 方法中应用自定义的 CORS 设置
export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(CorsMiddleware(corsOptions)).forRoutes('*');
  }
}

No código acima, você pode definir origine definir a origem das solicitações methodsde allowedHeadersdomínio cruzado, métodos HTTP permitidos e cabeçalhos de solicitação. Através das etapas acima, você pode implementar a função de resolver problemas de domínio cruzado em aplicativos NestJS. Certifique-se de que o CORS esteja configurado corretamente em ambientes de produção para garantir segurança e proteção de dados.

Acho que você gosta

Origin blog.csdn.net/wuzhangting/article/details/132472353
Recomendado
Clasificación