SpringBoot 서버 에서 크로스 필드 문 제 를 해결 합 니 다.
3405 단어 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 가 크로스 도 메 인 문 제 를 해결 하 는 데 관 한 자 료 는 저희 의 다른 관련 글 에 관심 을 가 져 주 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.