AWS API Gateway 不存在“Access-Control-Allow-Origin”标头

2024-04-02

我遇到了 API 网关的问题,我已经浏览了 AWS 论坛上的所有其他答案,也浏览了他们的文档,但仍然没有任何乐趣。

我正在尝试使用 AWS API 网关设置一个 API,该网关调用 Lambda 函数来读取/写入 DynamoDB 中的表。

DynamoDB 的 Lambda 函数正在运行。我在 AWS 中创建了一个 API,并为其创建了 GET 和 OPTIONS 方法。我读到 AWS 不会仅对 GET/POST 强制执行 OPTIONS,但当没有 OPTIONS 方法时,我在 ajax 调用中收到预检错误,因此我添加了一个。

目前,为了取得进展,我没有使用 API 密钥或授权。 我可以使用 POSTMAN 成功调用 GET 方法,该方法返回 DynamoDB 表的内容。

但是当我尝试使用 JQuery ajax 调用时我得到

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

我可以看到在网络选项卡下使用 Chrome 开发工具,OPTIONS 方法返回状态 200,GET 返回状态 200,但出现上述错误。

我尝试在 OPTIONS 和 GET 方法上启用 CORS,每次更改后都重新部署 API,并尝试了以下操作(http://enable-cors.org/server_awsapigateway.html http://enable-cors.org/server_awsapigateway.html)但总是在控制台中得到相同的错误。

我正在从桌面上的文件执行 ajax 调用,因此 origin 为 null,因为该页面将作为 JS 中的单个网页应用程序部署到 S3。

当我在 GET 和 OPTIONS 上启用 CORS 时,我可以看到 Access-Control-Allow-Headers 是'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'和 Access-Control-Allow-Origin* 是'*'

我的 Ajax 调用如下所示。我还尝试复制 POSTMAN 使用的确切标头,其中包含授权标头集(我现在已在 AWS 中关闭它),但我总是遇到上面相同的错误

var awsHeaders = {};
awsHeaders['X-Amz-Date'] = '20161127T171734';

$('#add, #cloud').click(function() {

    $.ajax({

        type: 'GET',
        headers: awsHeaders,
        dataType : "json",
        url: '...',
        success: function (res) {

            console.log('response in GET:');
            console.log(res);

        },
        error: function(data) {
            console.log('in error');
            console.log(data);
        }

    });

});

谁能告诉我我可能会错过什么?

非常感谢

Update请参阅下面的答案,了解我如何根据 DigitalKapteain 评论解决此问题 - 通过在 Lambda 函数的响应中设置 'Access-Control-Allow-Origin':'*' 标头。我在 AWS 文档中查找了此内容,但没有找到。此链接描述了 Lambda 和 Lambda Proxy 之间的区别,并解释了使用 CORS 时该怎么做https://serverless.com/framework/docs/providers/aws/events/apigateway/ https://serverless.com/framework/docs/providers/aws/events/apigateway/


对 Lambda 函数的 GET 请求的响应还必须包含Access-Control-Allow-Originheader.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS API Gateway 不存在“Access-Control-Allow-Origin”标头 的相关文章

随机推荐

  • CookieContainer 错误?

    我很困惑 CookieContainer 如何处理域 所以我创建了这个测试 此测试显示 cookieContainer 不会为 example com 返回任何 cookie 但根据 RFC 它应该返回至少 2 个 cookie 这不是一个
  • SunGridEngine、Condor、Torque 作为 PVM 的资源管理器

    有人知道哪个资源管理器适合 PVM 吗 或者我不应该使用 PVM 而是依赖 MPI 或其任何版本 例如 MPICH 2 还有其他更好的吗 使用 PVM 的主要原因是因为在我之前开始这个项目的人假设使用 PVM 然而 现在这个项目是我的了 他
  • 将内存流中的图像添加到 Excel 文档

    我在内存流中有一个图像 我想将其写入 MS Excel 文档 PIA 仅公开采用文件路径的 AddPicture 方法 有没有办法无需将图像写入光盘即可添加图片 MSDN http msdn microsoft com en us libr
  • 经典 ASP 中的超时问题

    我正在开发一个经典的 ASP 项目 在从数据库填充数据并将其绑定到 UI 中时遇到超时问题 我们得到以下错误 脚本超时 超出了脚本执行的最长时间 您可以通过为 Server Scripttimeout 属性指定新值或更改 IIS 作为管理工
  • 我使用 document.getelementsbyclassname 是否错误?

    当我输入文本框的值必须是 并且颜色必须是红色 我必须对三个文本框使用相同的函数 当我使用 document getelementsbyclassname 时 我的函数将无法工作 难道我做错了什么
  • VS 2008 Web 部署 - 防止文件夹被删除

    我有一个 ASP NET MVC 2 项目 该项目是使用 Web 部署项目 Visual Studio 2008 构建和部署的 该网站的根目录中有一个上传文件夹 用户生成的图像将保存到其中 每当构建运行 使用 team city 时 上传文
  • 使用字典替换列值

    我有这个数据框 其中性别预计为男性或女性 from io import StringIO import pandas as pd audit trail StringIO course id AcademicYear to months T
  • 结构中的字符数组 - 不兼容的赋值? [复制]

    这个问题在这里已经有答案了 我试图找出结构真正的 是什么 并遇到了问题 所以我有两个问题 1 sara 中保存了什么 它是指向结构体第一个元素的指针吗 2 更有趣的问题 为什么它不能编译 GCC 说 test c 10 错误 赋值中的类型不
  • Z-index 在 ie 中不起作用

    我的网页中有多个 div 有这个 javascript 幻灯片放映 我在该幻灯片上放置了一个菜单并将 div 绝对定位 我已使用 z 索引格式化订单 它们在 Firefox 中工作得很好 但在 Internet Explorer 中却不起作
  • 仅使用命令行界面在服务器上打包 Chrome 扩展

    是否可以仅使用 CLI Ubuntu 服务器 在服务器上使用密钥 pem 打包 chrome 扩展 更新 chrome 现在使用版本 3 而 google 发布的脚本仅适用于版本 2 版本 2 的官方打包脚本位于https develope
  • 在 Android Listview 中重用具有 2 种不同布局的视图

    我了解到 为了最大限度地提高 Android 列表视图的效率 您应该只拥有适合屏幕大小的膨胀 行 视图 一旦视图移出屏幕 您应该在您的视图中重复使用它getView方法 检查是否convertView是否为空 但是 当您需要两种不同的列表布
  • foreach 语句无法对“getenumerator”的公共定义类型的变量进行操作

    Task03Entities Entites entities new Task03Entities Entites Creat a object for my entites class Task03BAL BAL bal new Tas
  • PHP:帮助解码恶意代码[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 eval gzuncompress base64 decode eF5Tcffxd3L0CY5WjzcyNDG2NDc3MLGMV4 1d
  • 安装包时非零退出,仅 tidyverse

    我已经在 Ubuntu 上设置了托管 RStudio 并且已经加载了几个没有问题的软件包 包括 caret 和 lubridate 然而 当我尝试安装 tidyverse 时 我得到 gt install packages tidyvers
  • 设置与 Google 表单中的标签不同的值

    有没有办法使用 Google Forms Apps 脚本或 Google Sheets 公式来设置与 Google Forms 上的多项选择中的标签不同的值 我正在寻找类似于 html 的内容
  • 防止滚动 TVertScrollBox 时触发事件

    通常 当滚动 滚动框 的内容时 滚动框的子组件 例如 滚动框 不会触发任何事件函数 G 在本机应用程序中 但在 FireMonkey 中 如果 TVertScrollBox 包含像 TRectangle 这样的子元素 我想将其用作自定义菜单
  • 更改 rmarkdown 生成的 PDF 中的字体

    我正在使用 rmarkdown 生成报告 编织 PDF 时 title Untitled output pdf document I would like to specify the font to be used in creating
  • 如何在 vb.net 中使用 openfiledialog 打开文件?

    如何使用 openfiledialog 打开文件 下面是我的代码 Dim Fs As StreamReader With OpenFD FileName Title Open Text File InitialDirectory c Fil
  • 更改字符串字符时出现分段错误(核心转储)

    为什么更改字符串字符会导致分段错误 核心转储 char str string str 0 S segmentation fault core dumped 解决方案很简单 用以下方式声明你的字符串 char str string 您应该这样
  • AWS API Gateway 不存在“Access-Control-Allow-Origin”标头

    我遇到了 API 网关的问题 我已经浏览了 AWS 论坛上的所有其他答案 也浏览了他们的文档 但仍然没有任何乐趣 我正在尝试使用 AWS API 网关设置一个 API 该网关调用 Lambda 函数来读取 写入 DynamoDB 中的表 D