【问题标题】:Web API 2 Difference between EnableCors on global and on controller scopeWeb API 2 EnableCors 在全局和控制器范围内的区别
【发布时间】:2017-01-30 12:24:25
【问题描述】:

我关注this page开启跨域请求。
全局范围内的 EnableCors 始终有效。

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

但是,控制器范围内的 EnableCors 将使用请求方法“OPTIONS”使预检请求失败。

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

为了让它工作,我需要添加一个自定义委托处理程序,显示在this answer 上,它允许使用“OPTION”方法。
我用谷歌搜索了它,但没有太多关于差异的细节。有人可以向我解释其中的区别吗?

【问题讨论】:

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


    【解决方案1】:

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

    例如, 如果在 method 级别应用,该政策将仅适用于该操作的请求,而如果在 class 级别应用,该政策将适用于对该控制器的所有请求.最后,如果全局应用,该策略将适用于所有请求

    【讨论】:

    • 嗨,Vicky,我理解这个逻辑。我的问题是为什么在控制器级别应用 CORS 会导致预检请求失败。但不适用于全局范围。
    猜你喜欢
    • 2016-05-08
    • 2020-09-02
    • 2016-04-28
    • 2020-06-22
    • 1970-01-01
    • 2014-03-09
    • 2019-07-04
    • 2016-02-27
    • 2016-05-04
    相关资源
    最近更新 更多