교차 도메인 요청이란 요청이 현재 시작된 도메인과 요청이 가리키는 리소스가 위치한 도메인이 다르다는 의미입니다. 여기서 도메인은 다음과 같은 개념을 의미합니다. 프로토콜 + 도메인 이름 + 포트 번호가 동일하면 동일한 도메인이라고 믿습니다.
백엔드는 주로 cors의 도움을 받아 교차 도메인 문제를 해결합니다.
주석을 사용할 수 있습니다: @CrossOrigin
이 주석이 켜진 후 교차 -도메인 문제 해결 가능, 추가 가능 컨트롤러에서는 이 컨트롤러의 모든 메소드가 크로스 도메인 처리를 거쳤으며 별도로 메소드에 추가할 수도 있어 이 메소드만 크로스 도메인 처리를 거쳤음을 나타냄 -도메인 처리
이지만 기본값은 *입니다. 즉, 기본적으로 모두 허용되므로 프로젝트에 컨트롤러나 메서드가 여러 개 있는 경우 주석을 사용하는 것은 매우 쓸모가 없습니다. 하나씩 추가하는 것이 너무 번거롭다면 이때 전역 주석을 사용할 수 있습니다.
글로벌 솔루션
원리: 구성 클래스를 만들고, 도메인 간 등록을 활성화하고, @Configuration 주석을 사용하여 이 클래스를 삽입합니다.
요청 방법, 도메인 이름 권한 및 요청 시간을 자유롭게 구성할 수 있으며 도메인 간 범위를 더 자세히 제어할 수 있습니다package com.wyh.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * @Description: 解决全局跨域 * @Author: 魏一鹤 * @Date: 2022-11-30 22:44 **/ @Configuration public class CorsMapping implements WebMvcConfigurer { @Override /** * 重新跨域支持方法 * CorsRegistry 开启跨域注册 */ public void addCorsMappings(CorsRegistry registry) { //addMapping 添加可跨域的请求地址 registry.addMapping("/**") //设置跨域 域名权限 规定由某一个指定的域名+端口能访问跨域项目 .allowedOrigins("*") //是否开启cookie跨域 .allowCredentials(false) //规定能够跨域访问的方法类型 .allowedMethods("GET","POST","DELETE","PUT","OPTIONS") //添加验证头信息 token //.allowedHeaders() //预检请求存活时间 在此期间不再次发送预检请求 .maxAge(3600); } }참고: @Configuration 주석을 잊지 마세요. 그렇지 않으면 구성이 유효하지 않습니다! ! !
위 내용은 SpringBoot가 글로벌 및 로컬 크로스 도메인을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!