我按照this page启用跨域请求 全局范围内的EnableCors始终有效。
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
但是,控制器范围内的EnableCors将通过请求方法' OPTIONS'来使预检请求失败。
[EnableCors(origins: "*", headers: "*", methods: "*")]
要使其正常运行,我需要添加this answer上显示的自定义委托处理程序,这样就可以使用' OPTION'方法。
我用谷歌搜索了它,但没有太多关于差异的细节。有人可以向我解释一下这个区别吗?
答案 0 :(得分:0)
您可以在方法级别应用EnableCors
属性,也可以在类级别或全局应用于应用程序。
应用该属性的级别为Web API代码中该级别及以下级别的所有请求配置CORS。
例如, 如果应用于方法级别,则该策略仅适用于该操作的请求,而如果应用于类级别,则该策略将针对该控制器的所有请求。最后,如果应用全局,则该策略将适用于所有请求