2016-09-22 51 views
0

我遵循this page来启用跨域请求。
全局范围的EnableCors始终有效。Web API 2全局和控制器范围内的EnableCors之间的区别

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

但是,控制器作用域上的EnableCors将通过请求方法'OPTIONS'使预检请求失败。

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

得到它的工作我需要添加this answer显示自定义delegatehandler,这使得“OPTION”的方法。
我已经使用了它,但没有太多关于差异的细节。有人能向我解释不同之处吗?

回答

0

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

例如, 若涂抹处方法水平,该政策只适用于请求采取行动,而如果应用在水平,政策将是所有的请求到该控制器。最后,如果适用全球,政策将为所有请求

+0

嗨Vicky,我明白这个逻辑。我的问题是为什么在控制器级别上应用CORS失败了预检请求。但不适用于全球范围。 – Jonathon

相关问题