Javascript Azure API管理>;CORS和POST

Javascript Azure API管理>;CORS和POST,javascript,azure-api-management,Javascript,Azure Api Management,我正在使用Azure API管理向第三方提供一个干净的接口,以实现集成 我想用一个JSON对象发布一篇文章,在后端创建这个对象。这在门户网站中可用的测试控制台中运行良好,但当我尝试从网页执行简单的客户端脚本时,它不起作用: $.ajax({ url: 'https://.azure-api.net/api/samplerequest/create?' + $.param(params), type: 'POST', data: JSON.stringify(sampleR

我正在使用Azure API管理向第三方提供一个干净的接口,以实现集成

我想用一个JSON对象发布一篇文章,在后端创建这个对象。这在门户网站中可用的测试控制台中运行良好,但当我尝试从网页执行简单的客户端脚本时,它不起作用:

$.ajax({
    url: 'https://.azure-api.net/api/samplerequest/create?' + $.param(params),
    type: 'POST',
    data: JSON.stringify(sampleRequest),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data, par2, par3) {
        $("#txtResult").val(JSON.stringify(data));
    }
});
将contentType头设置为“application/json”会强制浏览器首先执行选项调用。我的WebAPI项目设置为启用CORS,我已经对此进行了测试。My WebAPI项目为OPTIONS方法返回以下标题:

访问控制允许头。。。内容类型 访问控制允许源*

但是,如果我尝试使用Azure管理API调用此操作,则OPTIONS方法的状态为200,但不存在其他标头。我尝试了许多策略配置,这是我最新的尝试:

<policies>
    <inbound>
        <base />
        <cors>
            <allowed-origins>
                <origin>*</origin>
                <!-- allow any -->
            </allowed-origins>
            <allowed-methods>
                <method>POST</method>
                <method>OPTIONS</method>
            </allowed-methods>
            <allowed-headers>
                <header>contentType</header>
            </allowed-headers>
        </cors>
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

*
邮递
选择权
内容类型

要使这项工作正常进行,我缺少什么?

ajax请求中的头应该是“content type”而不是“contentType”

回答我自己的问题,允许的头包含一个错误的值。在javascript中,我确实设置了“contentType”,但为其激发选项的头的名称称为“contentType”。下一个障碍。谢谢你在我遇到同样的问题时回答了你自己的问题。javascript是contentType,和您一样,我应用(并更正)了。谢谢我相信最近发生了变化。我突然想到了一个职位的选择,但以前不是这样的。我必须在Azure API管理中为标题设置*。不知道发生了什么变化,但这不是我的代码:(不管怎样,现在已经解决了,只是浪费了一整天!@Frederikvellmans-值得发布你自己的答案作为答案,这样它就不会坐以待毙。(嗯,这伤了我的头)顺便说一句,你不需要启用选项方法,这是CORS的标准,是自动处理的