Azure API管理:原始标头丢失或为空,并且该请求被分类为非跨域。未应用CORS政策

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure API管理:原始标头丢失或为空,并且该请求被分类为非跨域。未应用CORS政策相关的知识,希望对你有一定的参考价值。

我正在使用Azure API管理,并且需要使用它来管理三个API。测试时,GET方法工作正常,但是post方法出现以下错误:

原始标头丢失或为空,并且该请求被分类为非跨域。未应用CORS政策。

我已经四处搜寻并看到了许多有关CORS和APIM的问题,但是到目前为止,我还没有看到我的具体问题。

CORS策略的当前配置为

<policies>
<inbound>
    <cors>
        <allowed-origins>
            <origin>*</origin>
        </allowed-origins>
        <allowed-methods>
            <method>GET</method>
            <method>POST</method>
        </allowed-methods>
    </cors>
</inbound>
<backend>
    <forward-request />
</backend>
<outbound />
<on-error />
</policies>

我在以下位置寻找答案:

https://docs.microsoft.com/en-us/azure/api-management/api-management-cross-domain-policies

Azure API Management CORS: Why do I get "Headers starting with 'Access-Control-' were removed..."

https://briancaos.wordpress.com/2018/04/05/azure-api-management-configure-cors-in-the-policy/

我的问题是1.我需要如何制定我的CORS政策,2.是否需要在API Startup.cs或配置文件中添加任何内容以处理CORS?

谢谢?

答案

此消息本身并不表示任何问题,它仅指出接收到的请求不是CORS请求,因此将忽略CORS策略。仔细阅读CORS规范,正确的CORS请求必须至少具有Origin和用于非平凡请求的可选Access-Control-Request-Method标头。您可以使用VSCode REST客户端,Postman或Fiddler之类的工具来模拟此类请求,并查看正在使用的CORS策略。或者,如果您已经拥有浏览器客户端,请使用该客户端,浏览器将负责发送适当的标头。

以上是关于Azure API管理:原始标头丢失或为空,并且该请求被分类为非跨域。未应用CORS政策的主要内容,如果未能解决你的问题,请参考以下文章

为什么在调用azure数据湖gen2的put文件api时出现丢失的头错误?

TSQL - 对象或列名丢失或为空.. 尝试将 sql server 数据库备份到磁盘时

Azure API 管理不会在 4xx 上发送 CORS 标头

Azure API 响应中缺少速率限制标头

Azure 函数返回不推荐使用的 API 标头

Azure API 管理:使用可为空的属性验证内容