我无法在AWS Api Gateway的任何资源上启用CORS。

我使用了Web UI上的“启用Cors”按钮:

javascript - 如何启用CORS?-LMLPHP

但是尝试将其用于开发或生产时会产生收益:

javascript - 如何启用CORS?-LMLPHP

我正在使用jQuery 2.2.4和方法$.post

怎么了

更新:测试阶段:

javascript - 如何启用CORS?-LMLPHP

成功更新:

AWS文档可能很大。我未能意识到的是,您必须导出客户端生成的SDK,该SDK具有一个全局变量,该全局变量会根据您提供的资源生成方法。这样,当我使用此代码时,我可以最终返回成功的结果:

  const apigClient = apigClientFactory.newClient();

    apigClient.purchaseTokenPost({}, card, {})
        .then(function(result){
            console.log(result);
        }).catch(function(result){
            console.log(result);
        });

最佳答案

我发现即使对于“不安全”的api调用,即您没有使用API​​密钥保护的调用(例如我确实进行了一些测试),一旦启用cors,它只有在创建API密钥并发送后才有效符合要求-容易做到,不妨尝试一下。

ADDL INFO:

这是在端点上启用CORS后对我有用的示例jquery:

function loadData() {
            $.ajax({
                type: "GET",
                cache: false,
                url: "https://k4t999edod.execute-api.us-east-1.amazonaws.com/prod/myapicall",
                crossDomain: true,
                dataType: "json",
                headers: { 'x-api-key': 'xoeNNQ9475PCAgLtNP18cTv6YTWWB2JFfOe', 'X-Amz-Date': '1/1/2000', 'X-Amz-Security-Token': 'xoeNNQ9475PCAgLtNP18cTv6YTWWB2JFfOe' },
                success: function (response) {
                    //do something here.
                }
            });
        }


请注意,我在两个地方都包含了API密钥(我对真实密钥进行了加扰)

关于javascript - 如何启用CORS?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37983711/

10-09 23:27