CORS naprawdę doprowadza mnie do szaleństwa i nie mam pomysłów na to, co powinienem spróbować.AWS API Gateway - CORS + POST nie działa
Stworzyłem prostą APIG Api z 1 zasobu o nazwie 'abc' i dodaje się 2 metody GET i POST zarówno z Autoryzacja zestaw do BRAK i API Key Wymagane zestaw do fałszywego , wszystko wdrożone na etapie zwanym "dev".
Oczywiście Po włączeniu kor obu metod i widzę 3 złącza pinowe kontroli dostępu pozwalaj pochodzenia, kontroli dostępu-ce-Główki i Access Control Pozwala-Metody dodano do OPCJI Sposób i Access-Control-Allow-Origin dodany do POST i GET metod.
Obie rozmowy są odwzorowywane na tę samą funkcję lambda, która po prostu wyświetla tekst "Witaj z lambda" na konsoli.
Potem stworzyliśmy prostą stronę HTML Prowadziłem jako statycznej stronie na S3, wskazał domenę do niego używając Route53 i rozpoczęliśmy testy API przy użyciu jQuery $ .ajax dokonać połączenia .
Wszystko wydaje się proste, proste i dokładnie takie, jak wyjaśniono w dokumentach, z wyjątkiem tego, że tylko GET działa i wysyła tekst do konsoli zgodnie z oczekiwaniami. W POST Wyniki wersji w następujący błąd:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://example.com' is therefore not allowed access. The response had HTTP status code 400.
Do inspekcji wstępnych prac połączeń i zwraca 200 OK i wszystkie nagłówki istnieją, ale wywołanie POST zwraca ten błąd i 400 Bad Request.
Proszę każda pomoc jest bardzo ceniona, mam nadzieję, że ekipa AWS ogląda zbyt ...
Dzięki chłopaki.
EDYCJI - Skopiowane z Google Chrome:
POST Surowce Nagłówki żądań:
POST /dev/urls HTTP/1.1
Host: kykul1mshe.execute-api.us-east-1.amazonaws.com
Connection: keep-alive
Content-Length: 73
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
Content-Type: application/json
Referer: http://example.com/dev.html
Accept-Encoding: gzip, deflate, br
Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
POST Surowce Response Nagłówki:
HTTP/1.1 400 Bad Request
Date: Fri, 19 Aug 2016 02:14:16 GMT
Content-Type: application/json
Content-Length: 177
Connection: keep-alive
x-amzn-RequestId: a1160e45-65b2-11e6-9766-cd61e49fbcdb
X-Cache: Error from cloudfront
Via: 1.1 d64756b4df47ce24d6c62b5a8de97e87.cloudfront.net (CloudFront)
X-Amz-Cf-Id: N9mf7apicKbSM_MiZjePbEgZGIFKckWJ3lZljH8iHVKFVTcIIOQuHg==
ta zwraca 400 Bad Request
OPCJE Raw Zapytaj Nagłówki:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:accept, content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:kykul1mshe.execute-api.us-east-1.amazonaws.com
Origin:http://example.com
Referer:http://example.com/dev.html
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
OPCJE Raw Response Nagłówki:
Access-Control-Allow-Headers:Content-Type,X-Amz-Date,Authorization,X-Api-Key,Cache-Control,X-Requested-With
Access-Control-Allow-Methods:POST,OPTIONS
Access-Control-Allow-Origin:*
Connection:keep-alive
Content-Length:79
Content-Type:application/json
Date:Fri, 19 Aug 2016 02:14:16 GMT
Via:1.1 d64756b4df47ce24d6c62b5a8de97e87.cloudfront.net (CloudFront)
X-Amz-Cf-Id:KpGEDmIuf5RHcUnBWuA3oEMZgWHwrjy3SpLuOflRhAD8IIx5vyKGSw==
x-amzn-RequestId:a10bae11-65b2-11e6-bcf7-63b49c24629e
X-Cache:Miss from cloudfront
ta zwraca 200 OK
Witam, jestem z bramy api. Nie widzę niczego złego w sposobie konfigurowania api. Czy możesz zaktualizować za pomocą nieprzetworzonych żądań? Pomoże to w debugowaniu. –
Dziękuję za odpowiedź @AbhignaNagaraja - zaktualizowałem post z nagłówkami, które dostałem w Google Chrome (właśnie ukryłem prawdziwą nazwę domeny). – HBR