API Gateway(SAM)에 POST하면 OPTIONS 때문에 화가 났을 때의 대처
3047 단어 CORSsamAPIGateway
사건
웹 페이지에서 Ajax에서 JSON을 APIGateway로 POST하면 메소드가 POST가 아닌 OPTIONS로 변경되어 거부됩니다.
AWS SAM Local에서의 API 개발로 뒷면에는 Lambda가 있다고 하는 상황입니다.
Ajax를 요청한 웹페이지에서는 ↓↓처럼 화가났다.
결론
APIGateway에 CORS를 허용하는 설정으로 해결.
AWS 공식 문서 에 있는 대로 SAM 템플릿에 아래를 기술하는 것으로 해결.
Globals:
Api:
# Allows an application running locally on port 8080 to call this API
Cors:
AllowMethods: "'OPTIONS,POST,GET'"
AllowHeaders: "'Content-Type'"
AllowOrigin: "'http://localhost:8080'" # "'*'"でもいけた
lambda의 결과를 POST한 웹페이지에서 받고 싶다면 lambda의 응답을 아래와 같이 한다.
그렇지 않으면, POST는 할 수 있어도 응답을 받을 수 없다.
// node.jsの場合
return {
'statusCode': 200,
'headers': {
"Access-Control-Allow-Origin": "http://localhost:8080" // "'*'"でもいけた
},
'body': json.dumps(response)
}
원인
거친 원인은 브라우저에 의한 프리 플라이트라는 구조 때문입니다.
소통 테스트 같은 것으로, 이것에 넘어지고 있었다.
그래서 프리플라이트를 받아들이는 설정을 APIGateway로 할 필요가 있다.
끝에
처음에 "axios post 할 수 없다"같은 느낌으로 프런트 측을 의심해 버려 해결까지 돌았습니다. . .
Reference
이 문제에 관하여(API Gateway(SAM)에 POST하면 OPTIONS 때문에 화가 났을 때의 대처), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gossan/items/3125cd82e5961e4b653b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
APIGateway에 CORS를 허용하는 설정으로 해결.
AWS 공식 문서 에 있는 대로 SAM 템플릿에 아래를 기술하는 것으로 해결.
Globals:
Api:
# Allows an application running locally on port 8080 to call this API
Cors:
AllowMethods: "'OPTIONS,POST,GET'"
AllowHeaders: "'Content-Type'"
AllowOrigin: "'http://localhost:8080'" # "'*'"でもいけた
lambda의 결과를 POST한 웹페이지에서 받고 싶다면 lambda의 응답을 아래와 같이 한다.
그렇지 않으면, POST는 할 수 있어도 응답을 받을 수 없다.
// node.jsの場合
return {
'statusCode': 200,
'headers': {
"Access-Control-Allow-Origin": "http://localhost:8080" // "'*'"でもいけた
},
'body': json.dumps(response)
}
원인
거친 원인은 브라우저에 의한 프리 플라이트라는 구조 때문입니다.
소통 테스트 같은 것으로, 이것에 넘어지고 있었다.
그래서 프리플라이트를 받아들이는 설정을 APIGateway로 할 필요가 있다.
끝에
처음에 "axios post 할 수 없다"같은 느낌으로 프런트 측을 의심해 버려 해결까지 돌았습니다. . .
Reference
이 문제에 관하여(API Gateway(SAM)에 POST하면 OPTIONS 때문에 화가 났을 때의 대처), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gossan/items/3125cd82e5961e4b653b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
처음에 "axios post 할 수 없다"같은 느낌으로 프런트 측을 의심해 버려 해결까지 돌았습니다. . .
Reference
이 문제에 관하여(API Gateway(SAM)에 POST하면 OPTIONS 때문에 화가 났을 때의 대처), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gossan/items/3125cd82e5961e4b653b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)