1. 프론트 엔드 및 백엔드 프로젝트로 분리 된 프로젝트의 경우 프론트 엔드 프로젝트와 백엔드 프로젝트가 두 개의 다른 도메인에 배치되면 필연적으로 도메인 교차 도메인 문제를 일으킬 것입니다.
도메인 교차 문제의 경우, 우리가 생각하는 첫 번째 솔루션은 JSONP이며 기본적으로 과거의 도메인 크로스 문제를 다루었습니다.
그러나 JSONP 방법에는 단점이 있습니다. 프론트 엔드 또는 백엔드의 경우 작문 방법은 일반적인 Ajax 쓰기 방법과 다르며 백엔드는 해당 변경을 수행해야합니다. 또한 JSONP 메소드는 GET 요청을 통해서만 매개 변수를 전달할 수 있으며 물론 다른 단점이 있습니다. 이에 대한 응답으로, 나는 JSONP 방법을 사용하여 크로스 도메인 문제를 해결하기 위해 서두르지 않습니다. 나는 온라인으로 다른 방법을 찾기 위해이 기사가 주로 이야기하고 SpringBoot의 CORS 프로토콜을 통해 크로스 도메인 문제를 해결합니다.
2. CORS 계약
H5의 새로운 기능 : 크로스 오리핀 자원 공유. 이를 통해 개발자 (주로 백엔드 개발자)는 도메인에서 리소스에 액세스 할 수 있는지 여부를 결정할 수 있습니다.
CORS는 W3C 표준으로 브라우저를 허용합니다 (현재 IE8 미만을 지원할 수 없음). 다른 소스의 서버와 마찬가지로 요청 액세스를 위해 AJAX를 계속 사용할 수 있습니다.
CORS 프로토콜에 대한 특정 기사는 http://www.vevb.com/article/83093.htm을 참조하십시오. 이 기사는 꽤 좋습니다.
3. SpringBoot에서 CORS 프로토콜을 통해 크로스 도메인 문제를 해결하는 방법
SpringMVC4.2 버전은 CORS에 대한 지원을 추가합니다.
현재 제가하고있는 프로젝트는 기본적으로 SpringBoot에서 개발되었으므로 여기에 SpringBoot에 사용을 게시하겠습니다.
@ConfigurationPublic Class MyWebAppConfigurer 확장 webmvcconfigureradapter {@override public void addcorsmappings (corsregistry registry) {registry.addmapping ( "/**"); }우리의 경로는 AddMapping에서 구성 할 수 있습니다. /**는 모든 경로를 나타냅니다.
물론 다른 속성도 수정할 수 있습니다
@ConfigurationPublic Class MyWebAppConfigurer 확장 webmvcconfigureradapter {@override public void addcorsmappings (corsregistry registry) {registry.addmapping ( "/api/**"). .xcredentials (false) .maxage (3600); }위의 두 가지는 모두 글로벌 구성을위한 것입니다. 더 자세하게 원한다면 컨트롤러 클래스에서 @Crossorigin 주석을 사용할 수도 있습니다.
@crossorigin (origins = "http://192.192.168.1.97:8080", maxage = 3600) @requestmapping ( "rest_index")@restcontrollerpublic class indextroller { 이를 통해 컨트롤러의 모든 메소드가 HTTP : 19.168.1.97 : 8080의 요청을 처리 할 수 있도록 지정할 수 있습니다.
요약
위의 것은 SpringBoot의 CORS 프로토콜을 통해 크로스 도메인 문제를 해결하는 방법에 대한 편집자의 소개입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!