AWS-API-Gateway Keine "Access-Control-Allow-Origin' - header vorhanden ist

Bin ich stecken auf ein Problem mit der API-gateway und ich habe mich durch all die anderen SO Antworten, AWS-Foren und wurden durch Ihre docs aber noch keine Freude.

Ich versuche zu setup eine API für die Nutzung von AWS-API-gateway fordert eine Lambda-Funktion, die liest/schreibt in eine Tabelle in DynamoDB.

Die Lambda-Funktion zu DynamoDB arbeiten. Erstellt habe ich eine API, AWS, und erstellt eine GET-und eine OPTIONEN-Methoden für Sie. Ich lese AWS erzwingt nicht die OPTIONEN nur für GET/POST, aber ich war immer einen preflight-Fehler in meinem ajax-Aufruf, wenn es keine OPTIONEN Methode also fügte ich ein.

Für jetzt nur um Fortschritte zu machen ich bin nicht mit einem API-key oder eine Genehmigung.
Kann ich erfolgreich meine GET-Methode verwenden BRIEFTRÄGER, der gibt den Inhalt der DynamoDB-Tabelle.

Aber wenn ich versuche, über einen JQuery-ajax-Aufruf bekomme ich

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

Kann ich sehen, mit Chrome dev tools unter der Registerkarte "Netzwerk", die OPTIONEN, die Methode der Rückkehr status 200 und das zurückgegebene status 200, aber mit dem oben genannten Fehler.

Habe ich versucht die Aktivierung CORS sowohl auf der OPTIONEN-und GET-Methoden, haben erneut bereitgestellt wird, die API nach jeder änderung, die versucht haben, die folgenden (http://enable-cors.org/server_awsapigateway.html) aber bekomme immer den gleichen Fehler in der Konsole.

Ich bin der Ausführung des ajax-Aufrufs aus einer Datei auf meinem desktop, so Ursprung null ist, wie die Seite bereitgestellt werden, der S3 als eine einzige web-Seite, Anwendung in JS.

Wenn ich aktiviert CORS auf meine BEKOMMEN und OPTIONEN kann ich sehen, dass Access-Control-Allow-Header ist 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token' - und Access-Control-Allow-Origin* ist '*'

Mein Ajax-Aufruf sieht wie folgt aus. Ich habe auch versucht, das kopieren der exakt Header BRIEFTRÄGER verwendet, die der Authorization-header gesetzt werden (die habe ich abgeschaltet AWS für jetzt), aber ich bekomme immer den gleichen Fehler über

var awsHeaders = {};
awsHeaders['X-Amz-Date'] = '20161127T171734';

$('#add, #cloud').click(function() {

    $.ajax({

        type: 'GET',
        headers: awsHeaders,
        dataType : "json",
        url: '...',
        success: function (res) {

            console.log('response in GET:');
            console.log(res);

        },
        error: function(data) {
            console.log('in error');
            console.log(data);
        }

    });

});

Kann jemand Licht auf, was ich möglicherweise fehlen?

Vielen Dank

Update
Siehe Antwort unten bezüglich, wie ich das Problem gelöst, wie pro DigitalKapteain Kommentare - durch setzen des 'Access-Control-Allow-Origin':'*' - header in die Antwort von meinem Lambda-Funktion. Ich sah dies in der AWS-docs konnte Sie aber nicht finden. Dieser link beschreibt den Unterschied zwischen Lambda und Lambda-Proxy und erklärt, was zu tun ist bei der Verwendung von CORS https://serverless.com/framework/docs/providers/aws/events/apigateway/

InformationsquelleAutor der Frage user12345 | 2016-11-27

Schreibe einen Kommentar