axios 크로스 필드 요청 오류 해결
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. The response had HTTP status code 403
전단 프레임 워 크 가 발전 함 에 따라 현재 전후 단 데이터 분 리 는 이미 추세 가 되 었 다.즉,전단 은 ajax 로 백 엔 드 의 데이터 합성 페이지 를 요청 하고 백 엔 드 는 데이터 인터페이스 만 제공 하여 데 이 터 를 주면 된다.장점 은 전단 프로그래머 가 더 이상 자신의 로 컬 에 웹 서버 를 구축 하지 않 아 도 되 고 전단 도 백 엔 드 문법 을 알 필요 가 없 으 며 백 엔 드 도 전단 문법 을 알 필요 가 없다 는 것 이다.그러면 개발 배 치 를 간소화 하고 협력 난이 도 를 낮 출 수 있다.
일반적인 GET,POST,PUT,DELETE 요청 은 간단 한 요청(OPTIONS 요청 에 비해)이지 만 OPTIONS 는 좀 특별 합 니 다.서버 에 요청 을 보 내야 합 니 다.제 가 요청 하 시 겠 습 니까?데 이 터 를 보 내 드 리 겠 습 니 다.
Vue 프로젝트 에서 Http 서 비 스 는 Axios 를 사용 합 니 다.바로 OPTIONS 요청 을 사용 합 니 다.
헤더 에 만'access-control-Allow-Origin'을 추가 하면 문 제 를 해결 할 수 없습니다.오 류 는 글 의 시작 과 같 습 니 다.
여기 에는 OPTIONS 에 대한 추가 처리 요청 백 스테이지 가 필요 합 니 다.
본 고 는 Spring MVC 를 예 로 들 면:
차단기 클래스 추가:
public class ProcessInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
httpServletResponse.setHeader("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
httpServletResponse.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
httpServletResponse.setHeader("X-Powered-By","Jetty");
String method= httpServletRequest.getMethod();
if (method.equals("OPTIONS")){
httpServletResponse.setStatus(200);
return false;
}
System.out.println(method);
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
spring-mvx.xml 에 Spring 차단 기 를 설정 합 니 다:
<mvc:interceptors>
<bean class="cn.tfzc.ssm.common.innterceptor.ProcessInterceptor"></bean>
</mvc:interceptors>
이로써 문 제 는 이미 해결 되 었 다.이상 의 이 완벽 한 해결 axios 크로스 도 메 인 요청 오류 의 문 제 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 여러분 들 이 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Nuxt.js】axios로 header에 Authorization를 항상 붙이고 싶다!투고자의 고민 ・JWT 인증의 앱으로 axios로 API 두드릴 때 headers에 Authorization:token을 붙이는 공통 처리를 만들고 싶다 (여러가지 기사 봐도 어쩔 수 없어···) 고민 해결 nuxt...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.