2016-06-02 10 views
1

나는 아주 기본적인 질문이있다.cors를 활성화 할 위치는 어디입니까?

나는 톰캣 서버에서 호스팅되는 www.myapp1.com 응용 프로그램을 보유하고 있습니다. 그것은 apache 서버에서 myapis.com/api1에 호스팅 된 api를 호출합니다. 페이지를로드하는 것은, 그것은 진술 나누기 동안

-

XMLHttpRequest의은 myapis.com/api1로드 할 수 없습니다. 프리 플라이트에 대한 응답이 요청은 액세스 제어 검사를 통과하지 못합니다. 아니요 요청한 리소스에 'Access-Control-Allow-Origin'헤더가 있습니다. 따라서 'www.myapp1.com'원본은 액세스 할 수 없습니다. 응답은 HTTP 상태 코드 (403) 내가 CORS를 활성화해야 이해

했다. 제 질문은 CORS를 사용하도록 설정 한 서버입니다. www.myapp1.com 또는 myapis.com/api1이되어야합니까?

최소한 (아래) 필터를 /config/web.xml 파일에 추가하고 서버를 다시 시작하여 tomcat7.0.59 서버 인 www.myapp1.com에서 CORS를 사용 설정해 보았습니다. 그러나 작동하지 않습니다. 다른 것을 추가/구성해야합니까?

<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> 

url-pattern의 와일드 카드가 문제를 일으키고 있습니까? 필터 등급을 설정하려면 무엇인가해야합니까?

크롬을 테스트하고 있습니다. 도와주세요.

+0

가능한 복제 [워드 프레스 하위 도메인에 CORS를 사용하는 방법?] (http://stackoverflow.com/questions/38378729/how-to-enable-cors-on-a-wordpress-subdomain) –

답변

1

""이다. 이 매개 변수를 추가하면 문제가 해결 될 수 있습니다.

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
    <init-param> 
    <param-name>cors.exposed.headers</param-name> 
    <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value> 
    </init-param> 
</filter> 
+0

고급 구성 http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter – Ritwik

+0

변경 사항에 언급 된대로 init-params를 추가했습니다. Chrome에서 Dev Tools-> Network를 볼 때 CORS 필터 사용 여부와 관계없이 다음을 볼 수 있습니다. 옵션/API1 HTTP/1.1 호스트 : myapis.com 연결 : 연결 유지 액세스 제어 - 요청 - 방법 : GET 원산지 : https://myapp1.com 사용자 에이전트 : 모질라/5.0 (윈도우 NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, 도마뱀 붙이 등) 크롬/51.0.2704.84 사파리/ 액세스 제어 - 요청 - 헤더 537.36 : 액세스 제어 - 허용 - 기원, 권한 부여 수락 : */* 리퍼러 : HTTPS : //myapp1.com Accept-Encoding : gzip, deflate, sdch, br 수락 언어 : en-US, en; q = 0.8 – Ritwik

+0

** Dev Tools -> Console **에서 어떤 오류가 보이나요? 오류가 이전과 동일하면 을 다시 확인하십시오. 대소 문자를 구분합니다. –

관련 문제