Errors with AWS SimpleDB Javascript SDK



我正在尝试使用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'标头。因此,不允许访问原点'null'。响应的HTTP状态码为400。

我认为这是由于CORS政策。但是我找不到一种方法来设置CORS为SimpleDB,所以我安装了一个插件到浏览器,允许请求任何网站与ajax从任何来源。

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

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

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

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

根据这个论坛帖子:

虽然可以在浏览器SDK中使用SimpleDB和Javascript,但正如您所注意到的,这需要在客户端禁用CORS。

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

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

事实证明,目前不可能通过http使用SimpleDB AWS SDK。添加CORS支持的请求是在2014年2月27日提交的,但看起来它还没有实现。

相关内容

  • 没有找到相关文章

最新更新