SpringBoot 크로스 필드 문제 해결 방법 인 스 턴 스
4706 단어 springboot크로스 필드문제.
바 이 두 백과 의 동원 전략 에 대한 해석
브 라 우 저의 두 tab 페이지 에서 각각 바 이 두 와 구 글 의 페이지 를 엽 니 다.
브 라 우 저의 바 이 두 tab 페이지 에서 스 크 립 트 를 실행 할 때 이 스 크 립 트 가 어느 페이지 에 속 하 는 지 확인 합 니 다.
같은 소스 인지 확인 하 는 것 입 니 다.바 이 두 와 같은 소스 의 스 크 립 트 만 실 행 됩 니 다.[1]
원본 이 아니라면 데 이 터 를 요청 할 때 브 라 우 저 는 콘 솔 에 이상 을 보고 하고 접근 거 부 를 알려 줍 니 다.
같은 소스 정책 은 브 라 우 저의 행위 입 니 다.로 컬 데이터 가 자바 스 크 립 트 코드 에 의 해 가 져 온 데이터 에 오염 되 지 않도록 보호 하기 위해 서 입 니 다.따라서 클 라 이언 트 가 보 낸 요청 이 돌아 온 데이터 수신 을 차단 합 니 다.즉,요청 이 보 내 졌 습 니 다.서버 가 응답 하 였 으 나 브 라 우 저 에 의 해 받 아들 일 수 없습니다.
사실은 클 라 이언 트 브 라 우 저 는 url 에 자원 을 가 져 오 라 고 요청 합 니 다.즉,서버 의 ip 주소 에 엔 드 구호(http:/호스트 이름:포트 번호)를 추가 하 라 고 요청 합 니 다.만약 에 서버 가 있 는 Ip 주소(http://호스트 이름:포트 번호)가 일치 하지 않 으 면 서로 다른 소스 에 속 합 니 다.도 메 인 을 뛰 어 넘 는 문제 가 발생 합 니 다.브 라 우 저 는 서버 가 데 이 터 를 되 돌려 주 는 것 을 금지 합 니 다.
해결 방법 은 두 가지 가 있 습 니 다.
4.567917.전단 제조 규칙 에 부합 되 지 않 는 요청 규칙4.567917.백 엔 드 에서 크로스 도 메 인 지원 을 합 니 다.
크로스 필드 문제
크로스 필드 문 제 는 아래 의 일부 지역 이 다르다 는 것 을 말한다(적어도 한 곳).
요청 프로 토 콜 이 다 릅 니 다ip 주소 가 다 릅 니 다.
포트 번호 가 다르다.
요청 방식 이 다르다.
SpringBoot 크로스 도 메 인 문제 해결
/**
* @Author: Ember
* @Date: 2021/4/26 22:16
* @Description:
*/
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings (CorsRegistry registry) {
String[] allowOrigins ={"http://localhost:8080/","https://www.quyo.fun/"};
//
registry.addMapping ("/**")
.allowedOriginPatterns ("*")
.allowCredentials (true)
.allowedMethods ("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.maxAge (3600);
}
private CorsConfiguration buildConfig () {
CorsConfiguration corsConfiguration = new CorsConfiguration ();
List<String> list = new ArrayList<>();
list.add ("*");
corsConfiguration.setAllowedOrigins (list);
corsConfiguration.addAllowedOrigin ("*");
corsConfiguration.addAllowedHeader ("*");
corsConfiguration.addAllowedMethod ("*");
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter () {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource ();
source.registerCorsConfiguration ("/**", buildConfig ());
return new CorsFilter (source);
}
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
StringHttpMessageConverter converter = new StringHttpMessageConverter(
Charset.forName("UTF-8"));
return converter;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(responseBodyConverter());
}
}
테스트다음은 전단 AJAX 테스트 입 니 다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<link type="test/css" href="css/style.css" rel="external nofollow" rel="stylesheet">
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#cors").click(
function(){
$.ajax({
headers:{"token":"","Content-Type":"application/json;charset=UTF-8","Access-Control-Allow-Origin":"*"},
url:"http://47.119.112.252/book/index/show/allBlogs",
success:function(data){
console.log("start")
console.log(data)
alert(data);
}
})
});
});
</script>
<body>
<input type="button" id="cors" value="core "
</body>
</html>
크로스 오 버 문제 해결.
총결산
여기 서 SpringBoot 크로스 도 메 인 문제 해결 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 SpringBoot 크로스 도 메 인 문제 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 저 희 를 많이 사랑 해 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin Springboot -- 파트 14 사용 사례 REST로 전환하여 POST로 JSON으로 전환前回 前回 前回 記事 の は は で で で で で で を 使っ 使っ 使っ て て て て て リクエスト を を 受け取り 、 reqeustbody で 、 その リクエスト の ボディ ボディ を を 受け取り 、 関数 内部 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.