>  기사  >  Java  >  SpringBoot가 글로벌 및 로컬 크로스 도메인을 구현하는 방법

SpringBoot가 글로벌 및 로컬 크로스 도메인을 구현하는 방법

王林
王林앞으로
2023-05-14 23:16:14905검색

교차 도메인이란 무엇인가요?

교차 도메인 요청이란 요청이 현재 시작된 도메인과 요청이 가리키는 리소스가 위치한 도메인이 다르다는 의미입니다. 여기서 도메인은 다음과 같은 개념을 의미합니다. 프로토콜 + 도메인 이름 + 포트 번호가 동일하면 동일한 도메인이라고 믿습니다.

교차 도메인 문제 해결

백엔드는 주로 cors의 도움을 받아 교차 도메인 문제를 해결합니다.

부분 솔루션(주석 사용)

주석을 사용할 수 있습니다: @CrossOrigin

이 주석이 켜진 후 교차 -도메인 문제 해결 가능, 추가 가능 컨트롤러에서는 이 컨트롤러의 모든 메소드가 크로스 도메인 처리를 거쳤으며 별도로 메소드에 추가할 수도 있어 이 메소드만 크로스 도메인 처리를 거쳤음을 나타냄 -도메인 처리

SpringBoot가 글로벌 및 로컬 크로스 도메인을 구현하는 방법

이지만 기본값은 *입니다. 즉, 기본적으로 모두 허용되므로 프로젝트에 컨트롤러나 메서드가 여러 개 있는 경우 주석을 사용하는 것은 매우 쓸모가 없습니다. 하나씩 추가하는 것이 너무 번거롭다면 이때 전역 주석을 사용할 수 있습니다.

글로벌 솔루션SpringBoot가 글로벌 및 로컬 크로스 도메인을 구현하는 방법

원리: 구성 클래스를 만들고, 도메인 간 등록을 활성화하고, @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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제