2017-04-11 8 views
1

두 개의 서버가 있습니다. App & 웹, App은 OWIN이 보안 웹 API 2 API를 호스팅하며 Web은 API를 호출하는 Angular 1.6 응용 프로그램입니다.Web Api 2와 Angular 간의 CORS 오류

내 헤더는 다음과 같다 :

요청 :

Host: app 
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Access-Control-Request-Method: GET 
Access-Control-Request-Headers: authorization 
Origin: http://mysite 
Connection: keep-alive 

응답 : 내가 포함하도록 내 Web.config의를 열었습니다

Access-Control-Allow-Headers: * 
Access-Control-Allow-Methods: * 
Access-Control-Allow-Origin: * 
Allow: GET 
Content-Length: 83 
Content-Type: text/html; charset=utf-8 
Date: Tue, 11 Apr 2017 16:41:04 GMT 
Server: Microsoft-IIS/10.0 
X-Powered-By: ASP.NET 

:

<httpProtocol> 
    <customHeaders> 
    <add name="Access-Control-Allow-Origin" value="*" /> 
    <add name="Access-Control-Allow-Methods" value="*" /> 
    <add name="Access-Control-Allow-Headers" value="*" /> 
    </customHeaders> 
</httpProtocol> 

나는 또한 다음과 같습니다 :

config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 

내 오류는 다음과 같습니다

이유 : CORS 헤더 '액세스 제어 - 허용 - 기원'과 일치하지 않습니다 '(널)'

내가 여기 실종이고 어떻게 어떻게해야합니까 CORS 오류가 사라 졌나요?

물론
+0

이에 대한 응답을 변경 시도하고 작동되는지 확인합니다. 액세스 제어 허용 헤더 : Content-Type 액세스 제어 허용 방법 : 가져 오기, 게시, 옵션 액세스 제어 허용 허용 원본 : *. 나는 별표가 전반적으로 작동한다고 생각하지만 아마도 문제를 야기하고있을 것이다. – user2263572

+0

요청 헤더에 표시되는 'http : // mysite'원점 대신 브라우저가 원점이 'null'이라고 결정한 이유를 알아야합니다. https://stackoverflow.com/questions/42239643/when-does-firefox-set-the-origin-header-to-null-in-post-requests/42242802#42242802 브라우저가 원산지를 결정하는 몇 가지 사례를 나열합니다. '없는'. 나는이 사건에서 일어날 수있는 가장 가능성있는 일이있을 것이라고 생각한다. – sideshowbarker

답변

1

곧 질문을 게시 후, 나는 그것을 알아 냈 : 내가 필요

은 시작에 다음 WebApiConfig.cs

에서

config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 

을 제거하고 내 문제가 두 배이었다 .cs

이동해야합니다.

app.Us eCors (CorsOptions.AllowAll);

맨 위로

web.config 섹션도 안전하게 제거되었습니다.

신용에 : 서버에 Dreaded CORS issue with WebAPI and token