CORS 크로스 필드 문제 상용 해결 방법 코드 인 스 턴 스
새 필터:
/**
*
*/
public class AccessControlAllowOriginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException { }
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println(" ");
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.setHeader("Access-Control-Allow-Origin", "*");//
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Allow-Credentials", "true"); // header ,
response.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin,content-type,x-requested-with,Content-Type,Access-Control-Allow-Headers,Content-Length,Accept,Authorization,X-Requested-With");
filterChain.doFilter(servletRequest, response);
}
@Override
public void destroy() {}
}
전단 헤더 추가:
$.ajax( {
url : 'http://c2.zhuzher.com/pdm/know/active?hotelid=808047&sdate=2019-11-09&edate=2019-11-11',
beforeSend: function (xhr) {
xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); //
xhr.setRequestHeader("Content-Type", "application/json;charset=utf-8");
},
type : 'get',
dataType : 'json',
data:{},
success : function(data) {
alert(1111);
}
});
2 백 엔 드 인터페이스 springboot/springmvc 사용 설명springMVC 버 전 은 4.2 이상 버 전이 어야@CrossOrigin 을 지원 합 니 다.
방법 은 Get 또는 POST 를 가리 켜 야 합 니 다.
로 컬 nginx 역방향 에이전트(추천)
로 컬 다운로드 압축 풀기 nginx,server 프로필 추가:
nginx 의 html 디 렉 터 리 에 놓 여 있 으 면 크로스 도 메 인 설정 을 추가 하지 않 아 도 됩 니 다.그렇지 않 으 면 설정 에 불필요 한 오 류 를 보고 할 수 있 습 니 다.
매번 직접 사용 해 볼 수 있 습 니 다.안 됩 니 다.추가 add헤더 등 설정.
###start ####
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Headers Accept,Origin,X-Requested-With,Content-Type,If-Modified-Since,Last-Modified,Content-Length,Content-Range,Range,Content-Description,Content-Disposition;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
add_header Access-Control-Request-Headers Content-Disposition;
add_header Access-Control-Allow-Credentials true;
###end ###
server {
listen 80;
server_name 127.0.0.1;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
# ,
location /pdm {
proxy_pass http://c2.zhuzher.com/pdm;
}
}
server {
listen 8081;
server_name 127.0.0.1;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
# ,
location /pdm {
proxy_pass http://c2.zhuzher.com/pdm;
charset utf-8;
# proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
프로젝트 에서 설 정 된 8081 포트 를 직접 호출 하면 됩 니 다.api.get('//localhost:8081/pdm/user/login',data)
주의 할 점 이 있 습 니 다.Content-Type 이 application/json 이 라면 도 메 인 간 요청 을 보 낼 수 없습니다.여기 서 해결 방법 을 제공 합 니 다.인터페이스 전단 요청 type 으로 변경 하 는 것 입 니 다.
'Content-Type':'text/plain'
데 이 터 를 문자열 로 보 내기:
JSON.stringify(data)
백 엔 드 인 터 페 이 스 는 String 으로 데 이 터 를 받 은 다음 대상 으로 전환 하면 됩 니 다.
@PostMapping("/distributeBatch")
public ResMsg distributeSaleBatch(@RequestBody String params){
System.out.println(params);
//Integer user_id, Integer customer_id
//Gson
List<Map<String, Integer>> fromJson = new Gson().fromJson(params, new TypeToken<List<Map<String, Integer>>>() {
}.getType());
System.out.println(new Gson().toJson(fromJson));
return registeredCustomerService.distributeSaleBatch(fromJson);
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Google Cloud Storage의 Signed URL로 업그레이드할 때 CORS 설정주로 자신 용이지만, 아마 1 년 후 잊어 버릴 것 같아서 메모하기로했습니다 자주 있는 케이스군요. 우선 SignedUrl을 발행하는 곳은, 이하의 문서를 보고 간단하게 할 수 있었습니다. 그렇게 해서 완성된 URL...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.