小编Fre*_*ans的帖子

Azure API管理> CORS和POST

我正在使用Azure API Management为第三方提供干净的界面以进行集成.

我想用一个JSON对象做一个POST来在后端创建这个对象.这在门户网站中可用的测试控制台中工作正常,但是当我尝试从网页执行简单的客户端脚本时它不起作用:

$.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));
    }
});
Run Code Online (Sandbox Code Playgroud)

将contentType标头设置为'application/json'会强制浏览器首先执行OPTIONS调用.我的WebAPI项目设置为启用CORS,我已对此进行了测试.我的WebAPI项目为OPTIONS方法返回以下标头:

Access-Control-Allow-Head ...内容类型Access-Control-Allow-Orig ...*

但是,如果我尝试使用Azure Management 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>
Run Code Online (Sandbox Code Playgroud)

我缺少什么让这项工作?

javascript azure-api-management

10
推荐指数
1
解决办法
2078
查看次数

标签 统计

azure-api-management ×1

javascript ×1