|
문제 설명 MVC 또는 웹 API ASP.NET 작성된 서비스가 ASP.NET 도메인 간 호출이 이루어지면 접근 불가능해집니다. 번식 방법
원인 분석 크로스 도메인 문제의 근본적인 이유는 브라우저가 두 요청 모두에서 낮은 권한을 가지며, 보통 로컬 도메인 내 자원에 대한 호출만 허용하기 때문입니다. 이는 대상 서버가 명시적으로 크로스 도메인 호출이 허용된다고 알려주지 않는 한 가능합니다. 따라서 교차 도메인 문제는 브라우저의 동작에 의해 발생하지만, 해결책은 서버 측에 있습니다. 모든 클라이언트가 보안을 낮추도록 요구할 수는 없기 때문입니다.
용액 MVC와 ASP.NET 웹 API 프로젝트 유형 모두 ASP.NET 조사를 해본 결과, 다음과 같은 시나리오가 가능하다는 것을 알게 되었습니다. MVC ASP.NET web.config에 다음 내용만 추가하면 됩니다
ASP.NET 웹 API의 경우, 위 설정 외에 각 API 컨트롤러마다 OPTIONS 메서드를 추가하는 특별한 설계가 필요합니다. 하지만 아무것도 반환하지 않는 방식입니다. 공개 문자열 옵션() { null을 반환; 빈 몸체를 사용하는 HTTP 200 응답 }
참고: 이 기능은 약간의 연구를 통해서도 구현할 수 있으며, 필터로 설계하는 것이 더 나을 수 있습니다.
|