2017-09-27 4 views
1

레일 애플리케이션을 Rails 4.1.1에서 Rails 5.1.4으로 업그레이드 중입니다. 2 개의 응용 프로그램이 있습니다. 하나는 웹 응용 프로그램 (angular 용)이고 다른 하나는 API 응용 프로그램입니다.CORS 문제 (레일 4 - 레일 5)

내가 뭘하는지, Web app(Rails with Angular)에서 요청을 보내고 API app에서 데이터를 가져 오는 중입니다. 내가 Web app에서 요청을 보낼 때 오류가 아래에 언급되었다 :

http://api.myapp:3001/user로드 할 수 없습니다 : 액세스 제어 검사를 통과하지 않습니다 요청을 프리 플라이트에 대한 응답을 다음 '액세스 제어 - 허용 - 기원'의 값을 요청의 자격 증명 모드가 '포함'인 경우 응답의 헤더는 와일드 카드 '*'가 아니어야합니다. 따라서 원점 'http://myapp:3000'은 액세스 할 수 없습니다. XMLHttpRequest에 의해 시작된 자격 증명 요청 모드는 withCredentials 특성으로 제어됩니다.

http://myapp:3000' -> Web application and request sending to API 

http://api.myapp:3001/user -> API application to send response 

google 문제 후, 나는 하나 개의 보석 rack-cors라는 발견. 는 웹 및 API를 모두 응용 프로그램에서, 나는
config.middleware.insert_before 0, Rack::Cors do 
    allow do 
    origins '*' 
    resource '*', :headers => :any, :methods => [:get, :post, :options] 
    end 
end 

하지만 여전히 문제가 점점

을 추가했습니다. 저에게 알려주세요.

+0

https://stackoverflow.com/questions/19743396/cors-cannot-use-wildcard-in-access-control-allow-origin-when-credentials-flag-i – max

+0

[this] (https://stackoverflow.com/questions/17858178/allow-anything-through-cors-policy)가 귀하의 답변이라고 생각합니다. –

+0

@max - 두 가지 모두 시도했지만 작동하지 않았습니다. –

답변

0

음, 메시지 :의

값 '액세스 제어 - 허용 - 원산지'는 응답 헤더를 와일드 카드가 아니어야 '*'요청의 자격 증명 모드 일 때] '포함'

Angular 응용 프로그램에서 자격증 명 정보를 보내고 있으며 도메인이 허용 목록에없는 것으로 보입니다. 테스트를 위해 withCredentials를 false로 설정하거나 도메인을 허용하려고 시도 할 수 있습니다.

이 당신을 도울 수 : http://50linesofco.de/post/2017-03-06-cors-a-guided-tour