如何从Firebase Hosting到AWS Lambda函数执行Cross-Origin-Request

问题描述 投票:0回答:1

对不起我,我是webdev的新手。

我有一个简单的单页网页托管在firebase托管上,从aws lambda函数获取一些信息(我没有使用谷歌云,因为它没有让我免费进行出站请求)。

lambda函数不接受任何输入。将其视为随机数生成器。

这是客户端请求的方式:

$.ajax({
          url: "thatAWSLambdaURL",
          crossDomain: true,
          xhrFields: {
              withCredentials: true
          },
          method: 'GET',
          success: function(data){
            console.log('succes: '+data);
          }
        });

但我在日志中得到这个错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://someAWSLambdaUrl.amazonaws.com/default/someurl. (Reason: CORS header 'Access-Control-Allow-Origin' missing).[Learn More]

我甚至配置我的lambda函数的API网关到Enabled CORsAccess-Control-Allow-Header设置为'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'Access-Control-Allow-Origin设置为"*"

如果我从Firefox或简单的python脚本本地请求lambda函数,它可以完美地工作。这只发生在我从网页上请求时。我该如何解决?

javascript jquery ajax amazon-web-services firebase-hosting
1个回答
0
投票

在阅读了这里发现的关于cors的lambda文档:https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html

看起来你需要在lambda函数中返回相应的头文件。

© www.soinside.com 2019 - 2024. All rights reserved.