1
我有兩臺服務器:App & Web,App正在託管一個由OWIN保護的web 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
響應:
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
我已經打開了我的web.config包括:
<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頭「訪問控制允許來源」不匹配「(null)的
缺少什麼我在這裏和我怎麼做CORS錯誤消失了?
在您的服務器嘗試改變這種反應,看看它是否工作。 Access-Control-Allow-Headers:Content-Type, Access-Control-Allow-Methods:GET,POST,選項 Access-Control-Allow-Origin:*。我認爲這個星號會全面起作用,但也許會造成一個問題。 – user2263572
你應該弄清楚爲什麼瀏覽器已經決定了源代碼是'null'而不是你在請求頭文件中看到的'http:// mysite'源。 https://stackoverflow.com/questions/42239643/when-does-firefox-set-the-origin-header-to-null-in-post-requests/42242802#42242802列出了瀏覽器將決定原點的一些情況'空值'。我想在這種情況下最可能發生的一種情況是,在一些情況下會發生一些跨源重定向 – sideshowbarker