2014-09-07 2 views
0

나는 Yeoman을 사용하여 AngularJS 앱을 배포했습니다. Cakephp RESTful 백엔드.Apache에서 CORS 프리 플라이트 요청 처리

if ($request_method = 'OPTIONS') { 
    add_header 'Access-Control-Allow-Origin' '*'; 
    add_header 'Access-Control-Allow-Credentials' 'true'; 
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; 
    add_header 'Access-Control-Allow-Headers' 'X-AuthTokenHeader,Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since'; 
    add_header 'Access-Control-Max-Age' 1728000; 
    add_header 'Content-Type' 'text/plain charset=UTF-8'; 
    add_header 'Content-Length' 0; 
    return 204; 
} 

가 어떻게 아파치에서이 일을 가야합니까 :

각 응용 프로그램은 내가 이것을 사용하고이 문제를 해결하기 위해의 nginx에서, 백엔드 (403) 금지로 응답 옵션 프리 플라이트 요청에 전송 ? 예비 지침/의견을 제공해주십시오. 그 후에 세부 사항을 파악하고 세부적인 내용으로 질문을 개선 할 것입니다.

답변

3

내가 있었다

Header add Access-Control-Allow-Origin "*" 
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" 
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" 

하는 아파치 모듈 헤더를 활성화해야합니다 동일한 질문과 주어진 답은 문제를 해결하지 못합니다. 둘러보고함으로써

더 난 당신이 재 작성을 사용하여이 작업을 수행 할 수 발견, 예 :

RewriteEngine On     
RewriteCond %{REQUEST_METHOD} OPTIONS 
RewriteRule ^(.*)$ $1 [R=200,L]  

그런

사용한다은 "항상 설정"(당신이 재 작성 모드를 활성화해야합니다) 헤더를 설정, 예 : 여기

Header always set Access-Control-Allow-Origin "*"     
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS" 

설명 : https://serverfault.com/questions/231766/returning-200-ok-in-apache-on-http-options-requests

1

도움이된다면 - 나는 또한 나를 위해 POST 요청 작업을하기 위해 다음을 추가했다, 그래서 내가 인증을 사용했다 :

<LimitExcept OPTIONS> 
    Require valid-user 
</LimitExcept> 
관련 문제