AWS SimpleDB Javascript SDK出错

Lev*_*Lev 12 javascript ajax amazon-web-services amazon-simpledb cors

我正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)

当我运行这个网页时,我收到此错误:

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

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

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

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

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

编辑: 来自浏览器控制台的更多信息

Lev*_*Lev 3

根据这个论坛帖子:

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

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

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

事实证明,目前不可能通过 http 使用 SimpleDB AWS SDK。添加 CORS 支持的请求已于2014 年 2 月 27 日提交,但看起来尚未实施。