【问题标题】:CORS issue - Access-Control-Allow-Origin Error Upon POST (Jquery Ajax)CORS 问题 - POST 时的 Access-Control-Allow-Origin 错误(Jquery Ajax)
【发布时间】:2018-03-16 21:48:27
【问题描述】:

我正在使用 JQUERY 和 AJAX 向 AWS s3 API 网关发出 POST 请求。提交后,阴影会更新。但是我在控制台中收到错误。这里是ajax部分的代码,

var myJSON = JSON.stringify(obj);
$.ajax({
   type: "POST",
   url:  "<aws-url>" ,
   data: myJSON,
   crossDomain : true,
   //dataType: 'jsonp',
   headers :{
            'Content-Type':'application/x-www-form-urlencoded'
            },
   success: function(result) {
        console.log("done");
   }
});

POST 工作并且阴影已更新,但我仍然在控制台收到此错误。我也知道邮递员不能与 POST 方法一起使用。 这是错误: 加载失败:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'https://s3-ap-southeast-1.amazonaws.com' 因此不允许访问。

我不明白发生了什么。请帮忙!!

【问题讨论】:

标签: jquery ajax post amazon-s3 cors


【解决方案1】:

请在您的 API 网关中启用 CORS,如下所示。

如果您没有添加 OPTIONS,请按照以下步骤操作(如果 OPTIONS 已经存在,只需添加 CORS),

  • 在 /services 资源下创建一个新的 OPTIONS 方法
  • 在 OPTIONS 方法中创建并填充 Access-Control-Allow-Origin/Method/Headers。

在创建 OPTIONS 后启用如下所示的 CORS

【讨论】:

  • 感谢您的回答,但我已经启用了 CORS。我已将 Access-Control-Allow-Origin 设置为“*”,并将 Access-Control-Allow-Headers 设置为提供给我的默认值,即 Content-Type、X-Amz-Date、Authorizaiton、X-API-key 和 X -Amz-安全令牌。我还将 Access-Control-Allow-Method 设置为 POST、GET 和 OPTIONS。还是不行。这些方法是 lambda 函数,不需要授权。但是我没有检查任何网关响应。请帮忙。
  • 我确信您可能在更改后部署了 API,但只是想确认一下
  • 是的。我部署了 API,然后发出了更新影子的 POST 请求。但是我认为我没有在响应标头中获得 access-control-allow-origin 。响应本身为空,这意味着 POST 成功。仍然没有解决控制台中的错误。
  • 如果 API 网关正在触发 Lambda,您能否分享您的处理程序代码?
  • 如果处理程序连接到 Lambda,您能否分享一下?
猜你喜欢
  • 2016-09-20
  • 1970-01-01
  • 2012-09-20
  • 2017-10-24
  • 2021-05-12
  • 2021-06-17
  • 2021-01-01
  • 2016-09-30
  • 2015-08-17
相关资源
最近更新 更多