Ditsmod 애플리케이션의 옵션 및 CORS
9176 단어 nodenestjsditsmodtypescript
@ditsmod/cors
모듈을 사용할 수 있습니다.설치
yarn add @ditsmod/cors
기본 설정으로 작업
@ditsmod/cors
의 완성된 예를 볼 수 있습니다in the Ditsmod repository .모듈은 가져온 직후 기본 설정으로 작동할 수 있습니다.
import { Module } from '@ditsmod/core';
import { CorsModule } from '@ditsmod/cors';
@Module({
imports: [
CorsModule,
// ...
],
// ...
})
export class SomeModule {}
이제
SomeModule
의 모든 경로는 OPTIONS
HTTP 메서드를 사용하는 새 경로로 보완됩니다. 즉, SomeModule
에 GET /users
및 GET /posts
경로가 있으면 자동으로 OPTIONS /users
및 OPTIONS /posts
경로로 보완됩니다.대략 다음 쿼리를 사용하여 이 모듈의 작동을 확인할 수 있습니다.
# Simply OPTIONS request
curl -isS localhost:3000 -X OPTIONS
# OPTIONS CORS request
curl -isS localhost:3000 -X OPTIONS -H "Origin: https://example.com"
# GET CORS request
curl -isS localhost:3000 -H "Origin: https://example.com"
# CORS preflight request
curl -isS localhost:3000 \
-X OPTIONS \
-H "Origin: https://example.com" \
-H 'Access-Control-Request-Method: POST' \
-H 'Access-Control-Request-Headers: X-PINGOTHER, Content-Type'
사용자 정의 설정으로 작업
기본 설정을 변경하려는 경우 가져오는 동안 모듈 수준에서 고려할 몇 가지 옵션을 전달할 수 있습니다.
import { Module } from '@ditsmod/core';
import { CorsModule } from '@ditsmod/cors';
@Module({
imports: [
CorsModule.withParams({ origin: 'https://example.com' }),
// ...
],
// ...
})
export class SomeModule {}
경로 수준에서 CORS 옵션을 전달할 수도 있습니다.
import { Module, Providers } from '@ditsmod/core';
import { CorsModule, CorsOpts } from '@ditsmod/cors';
@Module({
imports: [
CorsModule,
// ...
],
providersPerRou: [
...new Providers()
.useValue<CorsOpts>(CorsOpts, { origin: 'https://example.com' }),
// ...
],
// ...
})
export class SomeModule {}
CORS 요청 중 쿠키 작업
쿠키를 포함하기 위해 CORS HTTP 응답이 필요하고 해당 쿠키가 웹 브라우저에서 허용되도록 하려면
CorsService
를 사용할 수 있습니다.import { Controller, Res, Route } from '@ditsmod/core';
import { CorsService } from '@ditsmod/cors';
@Controller()
export class SomeController {
constructor(private res: Res, private corsService: CorsService) {}
@Route('GET')
getMethod() {
this.corsService.setCookie('one', 'value for one');
this.res.send('Some response');
}
}
보시다시피 쿠키는
setCookie()
메서드를 사용하여 설정됩니다. 이 경우 응답에는 Access-Control-Allow-Credentials: true
헤더가 포함됩니다.
Reference
이 문제에 관하여(Ditsmod 애플리케이션의 옵션 및 CORS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kostyatretyak/options-and-cors-in-ditsmod-application-g32텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)