AWS API Gateway GET方法失败

时间:2018-08-07 21:14:03

标签: amazon-web-services web-applications aws-api-gateway

我已经尝试很长时间了,以使我的API Gateway上的GET方法生效,希望这里有人可以帮助我。

让我给您一块土地:我在S3存储桶中有一个HTML网站。在网站上,我有一个按钮,该按钮从AWS API Gateway调用API,以便通过Lambda函数从DynamoDB获取一些数据。 当按下按钮时,网站上的用户将发送以下AJAX呼叫:

$.ajax({
    method: 'GET',
    url: /*my API Link*/ ,
    headers: {
      Authorization: authToken
    },
    contentType: 'application/json',
    success: function(data) {
      alert(JSON.stringify(data))
    });
}

该呼叫包括从AWS Cognito生成的令牌。单独测试令牌时,如果没有任何问题。

在API网关中,我已经相应地创建了GET方法以及令牌和用户池的授权。集成请求引用了正确的Lambda函数,我选择了“使用Lambda代理集成”。单击按钮时,我可以看到Lambda函数被调用并按照CloudWatch中的预期执行。

但是,现在是问题所在,我没有从Lambda函数取回数据。在Chrome控制台中,我收到以下错误消息:

Failed to load resource: the server responded with a status of 403 ()
xxx.html:1 
Failed to load https://xxx.amazonaws.com/prod: Response to preflight 
the request doesn't pass access control check: No 'Access-Control-Allow- 
Origin' header is present on the requested resource. Origin 'https://s3- 
eu-west-2.amazonaws.com' is therefore not allowed access. The response 
had HTTP status code 403.

在部署API之前,我已启用CORS。有人可以帮助解决这个问题吗?

0 个答案:

没有答案