Web API 2全局和控制器范围上的EnableCors之间的差异

时间:2016-09-22 04:33:02

标签: c# asp.net .net asp.net-web-api cors

我按照this page启用跨域请求 全局范围内的EnableCors始终有效。

var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);

但是,控制器范围内的EnableCors将通过请求方法' OPTIONS'来使预检请求失败。

[EnableCors(origins: "*", headers: "*", methods: "*")] 

要使其正常运行,我需要添加this answer上显示的自定义委托处理程序,这样就可以使用' OPTION'方法。
我用谷歌搜索了它,但没有太多关于差异的细节。有人可以向我解释一下这个区别吗?

1 个答案:

答案 0 :(得分:0)

您可以在方法级别应用EnableCors属性,也可以在类级别或全局应用于应用程序。 应用该属性的级别为Web API代码中该级别及以下级别的所有请求配置CORS。

例如, 如果应用于方法级别,则该策略仅适用于该操作的请求,而如果应用于级别,则该策略将针对该控制器的所有请求。最后,如果应用全局,则该策略将适用于所有请求