ASP.NET Core Web API에서 CORS 활성화 : 완전한 가이드
CORS (Cross-Origin Resource Sharing)는 웹 브라우저가 일반적으로 브라우저의 현재 소스와 다른 도메인에 대해 크로스 오리핀 HTTP 요청을 만들 수있는 메커니즘입니다. CORS를 활성화하는 것은 프론트 엔드 애플리케이션과 다른 도메인 또는 포트에서 호스팅되는 백엔드 웹 API 간의 원활한 통신을 보장하는 데 중요합니다.
startup.cs에서 cors
를 활성화합니다ASP.NET Core에서 CORS를 활성화하는 선호하는 메소드는 startup.cs 파일을 통해 이루어집니다. configureservices 메소드에서 다음 줄을 추가하여 CORS 패키지를 설치하고 CORS 서비스를 구성하십시오.
services.AddCors();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
다음, 구성 메소드에서 app.usemvc ()를 호출하기 전에 Cors Middleware를 구성합니다.
app.UseCors(options => options.WithOrigins("http://example.com").AllowAnyMethod());
http://example.com")의 요청이 Global Configuration Cors ] 모든 컨트롤러 및 작업에 대해 전 세계적으로 CORS를 활성화하려면 sartup.cs 파일에 [enablecors] 속성을 추가 할 수 있습니다 :
[어셈블리 : enablecors (typeof (mypolicy))]
[assembly: EnableCors(typeof(MyPolicy))]
services.addcors (옵션 => { 옵션 .addpolicy ( "mypolicy", policy => policy.allowanyorigin (). allowanymethod (). allowanyHeader ()); });
services.AddCors(options =>
{
options.AddPolicy("MyPolicy",
policy => policy.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
});
커스텀 헤더 추가
CORS 구성에서 다른 사용자 정의 헤더를 지정 해야하는 경우 app.usecors 문의 옵션 객체를 수정할 수 있습니다.
app.usecors (옵션 => 옵션 .companyorigin (). allowanymethod (). allowanyHeader () .withexplessHeaders ( "x-my-custom-header");
app.UseCors(options => options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()
.WithExposedHeaders("X-My-Custom-Header"));
수동 헤더를 사용하여 추가 된 강제 방법
내장 CORS 미들웨어 사용을위한 대안으로 미들웨어를 사용하여 각 응답에 필요한 헤더를 수동으로 추가 할 수 있습니다. 이 방법은 그다지 권장되지 않지만 특히 인증 헤더를 사용할 때 경우에 유용 할 수 있습니다.
app.use (async (context, next) => { context.response.headers.add ( "Access-Control-Ollow-Origin", "*"); context.response.headers.add ( "Access-Control-allow-Methods", "Get, Post, Put, Patch, Delete"); context.response.headers.add ( "Access-Control-Hallow-Headers", "X-Pingother, Content-Type, Authorization"); 다음 ()를 기다리고 있습니다. });
app.Use(async (context, next) =>
{
context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
context.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE");
context.Response.Headers.Add("Access-Control-Allow-Headers", "X-PINGOTHER, Content-Type, Authorization");
await next();
});
결론에서
특정 요구 사항에 따라 ASP.NET Core에서 CORS를 활성화하는 몇 가지 방법이 있습니다. 이 안내서에 요약 된 단계에 따라 프론트 엔드 애플리케이션과 백엔드 웹 API 간의 원활한 교차 원산지 통신을 보장하여 데이터 및 기능을 도메인에서 공유 할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3