【发布时间】:2015-02-07 00:05:49
【问题描述】:
我有这个应用程序,我想在 Web.Config 中设置我的自定义标头,唉,这并不总是万无一失的。
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
</customHeaders>
上面的集合和它的迭代如
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="OPTIONS,GET,PUT,DELETE,POST" />
<add name="Access-Control-Allow-Headers" value="Authorization,Content-Type" />
</customHeaders>
在所有情况下都没有为我工作。截至目前,此设置在大约 50% 的测试机器中有效,在其他机器中提供 405 Method Not Allowed。
替代方法是在WebApiConfig.cs 中设置此项,并在Web.config 中取消注释自定义标头。
//Web API Cross origin requests - Enable
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
为什么会有这么多的歧义,我怎么知道CORS 会一直在哪里工作?我真的很想在 Web.config 上设置 CORS,只是因为我希望在部署的版本中灵活地修改它。
【问题讨论】:
标签: c# asp.net-mvc asp.net-web-api cors http-status-code-405