2015-07-25 13 views
12

Ich versuche, AWS SimpleDB Javascript SDK zu verwenden. Hier ist die Web-Seite mit meinem Skript:Fehler mit 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> 

Wenn ich diese Webseite betreibe ich diesen Fehler:

XMLHttpRequest cannot load https://sdb.amazonaws.com/ . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 400.

Ich denke, dies zu CORS Politik zurückzuführen ist. Aber ich finde keine Möglichkeit, CORS für SimpleDB einzurichten, also habe ich eine AddOn in den Browser installiert, die es ermöglicht, jede Site mit AJAX aus einer beliebigen Quelle anzufordern.

Mit dem AddOn eingeschaltet ich einen anderen Fehler:

XMLHttpRequest cannot load https://sdb.amazonaws.com/ . Invalid HTTP status code 400

Ich habe versucht, dieses Skript aus einer lokalen Datei ausgeführt wird und beherbergte es auf AWS S3. Ich bekomme immer noch den gleichen Fehler. Ich bin mir sicher, dass die Datenbank in meinem Konto existiert und ich mit anderen Tools darauf zugreifen kann. Aber ich muss darauf mit JavaScript zugreifen. Was mache ich falsch?

Edit:More information from the browser console

+1

Kann verwandt sein - http://stackoverflow.com/questions/20433655/no-access-control-allow-origin-header-is-present-on-the-requested-resource-or –

+0

Könnten Sie möglicherweise Ihre Post Anfrage an den Server und die Antwort des Servers? Es kann sein, dass einige Header fehlen oder aus dem einen oder anderen Grund falsch sind. –

+0

@VaughnOkerlund Ich bin mir nicht sicher, woher ich diese Informationen bekommen soll. Aber ich habe eine Kopie von allem, was ich in der Browser-Konsole finden konnte: https://dl.dropboxusercontent.com/u/4111969/log.txt – Lev

Antwort

3

Nach this Forum Beitrag:

While it is possible to use SimpleDB with the Javascript in the browser SDK, as you have noted, this requires CORS to be disabled on the client side.

The AWS Javascript SDK is actually built for both browser and server-side usage, which is why many services which do not include explicit CORS support are available.

The Javascript in the Browser SDK explicitly supports the following services: DynamoDB, SNS, STS, S3, SQS

Stellt sich heraus, es SimpleDB AWS SDK über http verwenden derzeit nicht möglich ist. Die request CORS-Unterstützung wurde am 27. Februar 2014 eingereicht, sieht aber so aus, als ob sie noch nicht implementiert wurde.