在測試ServiceStack時遇到着名的Access-Control-Allow-Origin
問題後,我在CORS上做了一堆閱讀以更好地理解問題。我也遇到this very helpful SO question。被忽略的CORS設置,Access-Control-Allow- *標題未被寫入
但是,那裏的解決方案並不適合我。我嘗試了包括CorsFeature
插件並手動設置端點配置,但在嘗試兩種方法後,我看到從服務器返回的響應頭沒有包含我的任何Access-Control-Allow-*
標頭,因此問題依然存在。
我嘗試了另一種解決方案,最終爲我工作(通過與其他一些不相關的問題)。我增加了以下我服務的web.config:
<system.webServer>
[...snip...]
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>
(其他讀者,請注意,IIS7 +這隻能見http://enable-cors.org/更多地瞭解使其他服務器上的CORS)
我問題是:爲什麼我能夠使用這個web.config方法獲得我的頭文件,而不是使用ServiceStack內置的CORS支持?有沒有配置設置我錯過了某個地方?