我无法在AWS Api Gateway的任何资源上启用CORS。
我使用了Web UI上的“启用Cors”按钮:
但是尝试将其用于开发或生产时会产生收益:
我正在使用jQuery 2.2.4和方法$.post
。
怎么了
更新:测试阶段:
成功更新:
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/