2016-07-27 8 views
5

에서 차단됩니다. 나는 tomcat 8.0.36에 배포되는 간단한 웹 응용 프로그램을 가지고 있습니다. 나는 제대로 CORS를 구성한 :크로스 원산지 요청은 알려진 문제처럼 보일 수 많은 질문 그러나, 내 상황은 매우 이상하다, 주제에 존재 바람둥이 8

<filter> 
<filter-name>CorsFilter</filter-name> 
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>CorsFilter</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 

크로스 원산지 요청은 브라우저에 의해 차단됩니다

없음 '액세스 제어 - 허용 - 원산지'헤더는 요청 된 자원에 존재합니다. 따라서 원점 'https://www.mytestpage.com'은 액세스 할 수 없습니다. 응답은 나 또한 흥미로운 것은 내 응용 프로그램의 코드는 출처 간 요청의 경우에는 실행되지 않습니다이다 (403)의 응답 코드를 볼 수있는 바람둥이 로그 파일에서 HTTP 상태 코드 (403)

했다. 요청은 내 애플리케이션에 도달하기 전에 차단되고 403은 즉시 전송됩니다. 나는 바람둥이 앞에서 아파치가 없다. 그것은 명백한 바람둥이 다. 나는 기원을 허용하고 허용 된 헤더를 지정하는 것을 포함하여 많은 일을 시도했지만 아무런 도움이되지 않았습니다. 또한 교차 원 리 요청의 경우 코드가 실행되지 않을 때까지 프로그래밍 방식으로 머리글을 설정하려고했습니다.

UPD : 결국 포인트는 POST 요청을 받아들입니다. 이러한 POST 요청은 JS 스 니펫에서 XmlHttpRequests로 전송됩니다.

어떤 아이디어가 될 수 있습니까?

p.s 동일한 원본 요청을 성공적으로 수행 할 수 있습니다.

+0

안녕, 당신이 당신의'CorsFilter' 구성에서 기본값을 사용은 때문에 문제는 모든 것을 할 수 있습니다. 예를 들어 'cors.allowed.methods' 기본값은 'GET, POST, HEAD, OPTIONS' 어쩌면 요청은'DELETE'이 시도된다. 자세한 내용을 게시 할 수 있습니까? – snieguu

+0

질문을 업데이트했습니다. POST 요청을 보내고 있습니다. – bekon

+0

요청은'org.apache.catalina.filters.CorsFilter'에 의해 거부됩니다. 디버그 해보거나이 클래스에서 로거를 디버그 레벨로 설정하십시오. – snieguu

답변

0

나는 문제가 무엇인지 발견 - 내가 요청의 컨텐츠 유형 헤더를 설정했다, 그렇지 않으면 요청이 차단됩니다. - Tomcat CORS filter

1

실제로는 Access-Control-Allow-OriginAccess-Control-Allow-Methods을 모두 설정해야합니다.

Access-Control-Allow-Origin: http://www.myhost.com 
Access-Control-Allow-Methods: GET, POST, PUT, DELETE 

는 또한 "옵션"모두 Access-Control-Allow-* 헤더 행을 반환하는 방법을 받아 들여야 예를 들면 다음과 같습니다. 일부 브라우저는 실제 요청 (예 : 'PUT'요청) 전에 서비스의 액세스 정보를 얻기 위해 이러한 종류의 요청을 발행 할 수 있습니다.