javascript - 如何启用 CORS?

标签 javascript jquery cors aws-api-gateway

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

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

enter image description here

但是尝试在开发或生产中使用会产生:

enter image description here

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

出了什么问题?

更新:测试阶段:

enter image description here

成功更新:

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

  const apigClient = apigClientFactory.newClient();

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

最佳答案

我发现,即使对于“不安全”的 api 调用,即您没有使用 API key 进行保护的调用(就像我测试某些东西时所做的那样),一旦我启用了 cors,它只有在我创建了一个 API 时才会起作用 key 并将其与请求一起发送 - 很容易做到,可能想尝试一下。

添加信息:

这是一个在端点上启用 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 key (我对真实的 key 进行了打乱)

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

相关文章:

php - AJAX 调用后 jQuery 未重定向

c# - CORS 停止 Angular 应用程序和 .NET CORE 3.0 API 之间的通信

cors - 什么是不透明的回应,它的目的是什么?

nginx - CORS 和非 200 statusCode

javascript - 如何避免 Javascript/jQuery 中的硬编码、链式异步函数?

javascript - Firebug 控制台

javascript - 将其转换为数据表后无法访问表格单元格

javascript - 无法设置表单输入javascript的值

javascript - 使用循环分配函数参数

javascript - 如何使用 JQuery 验证 Ckeditor