SpringBoot 서버 에서 크로스 필드 문 제 를 해결 합 니 다.

본문 내 비게 이 션
SpringBoot 크로스 도 메 인 문 제 를 해결 하 는 두 가지 방안:
1.방법 이나 클래스 에 주석 을 달 아 주 는 형식 으로@CrossOrigin.
2.인 터 페 이 스 를 계승 하고 addCors Mappings 방법 을 다시 씁 니 다.
첫 번 째 방법:

@RestController
@CrossOrigin("http://localhost:8081")
public class BaseController {

 @GetMapping("/hello")
 public String testGet(){

  return "get";
 }

 @PutMapping("/doPut")
 public String testPut(){
  return "put";
 }
}
요청 원본 을 지정 하면'*'로 쓸 수 있 으 며 모든 원본 의 요청 을 받 아들 일 수 있 습 니 다.
두 번 째 방식:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

 @Override
 public void addCorsMappings(CorsRegistry registry) {
  registry.addMapping("/**").allowedOrigins("http://localhost:8081")
    .allowedHeaders("*")
    .allowedMethods("*")
    .maxAge(30*1000);
 }
}
allowOrigins 도 allowedOrigins("*")로 쓸 수 있 으 며 모든 원본 의 요청 을 받 아들 일 수 있 습 니 다.
주의 점:
1.경로 원본 의 쓰기 문제
배경 에서 지정 한 경로 원본 은:http://localhost:8081
브 라 우 저 에서 전단 페이지 를 방문 할 때 사용 해 야 합 니 다.http://localhost:8081127.0.0.1 또는 이 컴퓨터 ip 주소 로 쓸 수 없습니다.그렇지 않 으 면 크로스 오 류 를 보고 할 것 이다.테스트 는 다음 과 같다.
배경 설정:

 @Override
 public void addCorsMappings(CorsRegistry registry) {
  registry.addMapping("/**").allowedOrigins("http://localhost:8081")
    .allowedHeaders("*")
    .allowedMethods("*")
    .maxAge(30*1000);
 }
전단 요청:

<script>
    doGet = function () {
        $.get('http://localhost:8080/hello', function (msg) {
            $("#app").html(msg);
        });
    }
 
    doPut = function () {
        $.ajax({
            type:'put',
            url:'http://localhost:8080/doPut',
            success:function (msg) {
                $("#app").html(msg);
            }
        })
    }
</script>
서비스 시작,브 라 우 저 접근:

http://localhost:8081/index.html
정상 복귀 결과
브 라 우 저 에 접근:

http://127.0.0.1:8081/index.html
크로스 필드 오 류 는 다음 과 같 습 니 다.

따라서 브 라 우 저 접근 경 로 는 배경 allow Origin 에 설 치 된 인자 와 일치 해 야 합 니 다.
코드 에 있 는 접근 경로 가 다 를 수 있 습 니까?예 를 들 어:

 doGet = function () {
  $.get('http://127.0.0.1:8080/hello', function (msg) { //  ip  
   $("#app").html(msg);
  });
 }

 doPut = function () {
  $.ajax({
   type:'put',
   url:'http://192.168.1.26:8080/doPut',
   success:function (msg) {
    $("#app").html(msg);
   }
  })
 }
테스트 를 통 해 가능 합 니 다.브 라 우 저 에서 페이지 를 방문 하 는 경로 쓰기 와 배경 이 일치 하면 됩 니 다.
2.쿠키 소지
가끔 은 전단 이 백 엔 드 인 터 페 이 스 를 호출 할 때 쿠키(예 를 들 어 백 엔 드 는 session 인증)를 휴대 해 야 합 니 다.이 럴 때 allow Origins("*")를 간단하게 사용 할 수 없습니다.구체 적 인 ip 주 소 를 지정 해 야 합 니 다.그렇지 않 으 면 잘못 보고 할 수 있 습 니 다.
이상 은 바로 SpringBoot 서버 에서 크로스 도 메 인 문 제 를 해결 하 는 상세 한 내용 입 니 다.SpringBoot 가 크로스 도 메 인 문 제 를 해결 하 는 데 관 한 자 료 는 저희 의 다른 관련 글 에 관심 을 가 져 주 십시오!

좋은 웹페이지 즐겨찾기