【问题标题】:Errors with AWS SimpleDB Javascript SDKAWS SimpleDB Javascript SDK 错误
【发布时间】:2015-10-15 23:52:37
【问题描述】:

我正在尝试使用 AWS SimpleDB Javascript SDK。 这是包含我的脚本的网页:

  <!doctype html>
  <html>
      <head>
          <meta charset="utf-8">
          <title></title>
      </head>
      <body>
        <script src="https://dl.dropboxusercontent.com/u/4111969/aws-sdk-2.1.39.js"></script>
        <script type="text/javascript">
           AWS.config.update({accessKeyId: 'MYKEY', secretAccessKey: 'MYSECRET'});
           AWS.config.region = 'us-east-1';
           AWS.config.logger = console;
        </script>

        <script>
           var simpledb = new AWS.SimpleDB({region:'us-east-1'});
           var params = { MaxNumberOfDomains: 1 };

           simpledb.listDomains(params, function(err, data) {
              if (err) console.log(err, err.stack); 
              else console.log(data);           
           });
        </script>

      </body>
  </html>

当我运行这个网页时,我得到了这个错误:

XMLHttpRequest 无法加载 https://sdb.amazonaws.com/。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'null' 不允许访问。响应的 HTTP 状态代码为 400。

我认为这是由于 CORS 政策。但是我找不到为 SimpleDB 设置 CORS 的方法,所以我在浏览器中安装了一个 AddOn,它允许从任何来源请求任何带有 ajax 的站点。

打开插件后,我得到一个不同的错误:

XMLHttpRequest 无法加载 https://sdb.amazonaws.com/。 HTTP 状态码 400 无效

我尝试从本地文件运行此脚本并将其托管在 AWS S3 上。我仍然得到同样的错误。我确定数据库存在于我的帐户中,并且可以使用其他工具访问它。但我需要用 JavaScript 访问它。我做错了什么?

编辑: More information from the browser console

【问题讨论】:

  • 您能否将您的请求发布到服务器以及服务器的响应?由于某种原因,某些标题可能丢失或不正确。
  • @VaughnOkerlund 我不确定从哪里获得这些信息。但是我复制了我在浏览器控制台中可以找到的所有内容:dl.dropboxusercontent.com/u/4111969/log.txt
  • 可能相关:AWS Support 说 CORS isn't supported on SimpleDB 大约 2014 年。
  • @devonlazarus 感谢您的链接,我找到了答案:AWS Javascript SDK 实际上是为浏览器和服务器端使用而构建的,这就是为什么许多不包含明确 CORS 支持的服务可用的原因。 Browser SDK 中的 Javascript 明确支持以下服务:DynamoDB、SNS、STS、S3、SQS

标签: javascript ajax amazon-web-services cors amazon-simpledb


【解决方案1】:

this论坛发帖:

虽然可以在浏览器 SDK 中将 SimpleDB 与 Javascript 一起使用,但正如您所指出的,这需要在客户端禁用 CORS。

AWS Javascript SDK 实际上是为浏览器和服务器端使用而构建的,这就是为什么许多不包含明确 CORS 支持的服务可用的原因。

浏览器 SDK 中的 Javascript 明确支持以下服务: DynamoDB、SNS、STS、S3、SQS

事实证明,目前无法通过 http 使用 SimpleDB AWS SDK。 用于添加 CORS 支持的 request 已于 2014 年 2 月 27 日提交,但似乎尚未实施。

【讨论】:

    猜你喜欢
    • 2014-09-01
    • 2021-08-06
    • 1970-01-01
    • 2020-08-11
    • 2022-06-30
    • 2016-07-29
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    相关资源
    最近更新 更多