在测试ServiceStack时遇到了着名的Access-Control-Allow-Origin
问题,我在CORS上做了一堆阅读以更好地理解这个问题。我也遇到了this very helpful SO question。
然而,那里的解决方案对我不起作用。我尝试包含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支持?是否有配置设置我在某处丢失?