【问题标题】:Do I have define my own endpoint to support CORS OPTIONS request我是否定义了自己的端点来支持 CORS OPTIONS 请求
【发布时间】:2020-04-10 01:58:51
【问题描述】:

我有一个用 vb.net 编写的 REST 服务,在 IIS 上运行,它定义了许多 <WebGet>,一个支持带有 <WebInvoke(Method:="POST")> 的 POST。现在我知道浏览器通过使用OPTIONS 方法进行预调用(查看支持哪些方法)进行预检检查,但我不知道的是,我是否必须定义<WebInvoke(Method:="OPTIONS)> 或者是这只是通过将 Access-Control-Allow-Methods 添加到我的 web.config 来解决的,我可以找到很多关于如何启用 CORS 的文章,我认为我不需要添加另一个 <WebInvoke>,但我需要一些指导。

希望你能帮忙。

【问题讨论】:

    标签: .net rest cors


    【解决方案1】:

    您是否尝试将其添加到类似于以下的 web.config 中:

    <configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="Access-Control-Allow-Methods" value="GET,POST"/>
            </customHeaders>
        </httpProtocol>
    </system.webServer>
    

    如果你有 cors 模块,你也可以像这里提到的那样拥有它: https://docs.microsoft.com/en-us/iis/extensions/cors-module/cors-module-configuration-reference

    【讨论】:

    • 是的,我知道以这种方式添加它,我通过将其添加到我的 web.config 来检查,我不需要编写任何额外的 语句来处理传入的 OPTIONS 调用我将在 POST 端点上收到。
    • 我的假设是您不需要,但您也需要允许 OPTIONS。但是你可以试试看。如果不是这样,请告诉我。
    猜你喜欢
    • 2018-07-03
    • 2013-01-24
    • 2022-01-13
    • 2014-05-13
    • 2013-09-16
    • 2014-04-25
    • 2018-07-06
    • 2019-07-13
    • 2012-07-31
    相关资源
    最近更新 更多