Ich habe erstellt verwenden und eine AWS-API-Gateway-Ressource mit der folgenden Struktur mit einem benutzerdefinierten HTTP-Request-Header 'X-Header'Kann benutzerdefinierte Anforderungsheader auf AWS API-Gateway mit CORS
dev (stage)
/echo (resource)
POST (method)
Method Request - Headers: X-header
OPTIONS (method)
Method Request - Headers: X-header
eingesetzt Als ich POST an den Endpunkt von Chrome, erhalte ich den folgenden Fehler.
XMLHttpRequest kann nicht geladen werden https://fxxxx.execute-api.us-west-2.amazonaws.com/dev/echo. Anforderungsheaderfeld X-header ist in der Preflight-Antwort von Access-Control-Erlaube-Header nicht erlaubt.
Chrome führt eine Preflight-Prüfung mit der OPTIONS-Methode durch. Ich kann den Anfrageheaders siehe:
Access-Control-Request-Header: akzeptieren, Content-Typ, X-Header
Access-Control-Request-Methode: POST
aber die Antwort nur Überschrift hat:
Access-Control-Allow-Header: Content-Type, X-Amz-Date, Authorization, X-Api-Key, X-Amz-Sicherheit-Token
Access-Control-Allow -Methoden: POST, OPTIONEN
Access-Control-Allow-Origin: *
Chrome erwartet, dass die Response-Access-Control-Request-Header meiner benutzerdefinierten X-Header enthalten, die logisch erscheint. Ist das ein API Gateway Bug?
Die einzige Problemumgehung, die ich sehe, ist, den benutzerdefinierten Header zu entfernen und die Daten im POST-Textkörper zu übergeben.
Dank Jack. Ist das das beabsichtigte Verhalten? Ich hätte gedacht, wenn ich CORS und einen benutzerdefinierten Header aktiviert hätte, würde API GW den Rest erledigen. – Jason
Auch: super, dass ihr auf stackoverflow unterstützt! – Jason
Ja, das ist das beabsichtigte Verhalten.Ich nehme an, es könnte automatisierter sein, aber wir versuchen, uns von dieser Art von "magischen" Veränderungen im Allgemeinen fernzuhalten. Ich werde mit dem Team diskutieren, wir könnten eine Ausnahme machen, da es für mich Sinn macht. –