디버깅을 시도했지만 약 2 주가 소요되었습니다.서버가없는 CORS 프리 플라이트 요청이 실패했습니다. - AWS API 스트라이프
전하를 생성하는 파이썬을 사용하여 람다 함수를 만들었습니다. 이것은 Stripe Checkout의 간단한 스크립트로 잘 작동합니다. 그것은 그것을 호출하고 아무런 문제없이 응답을 반환합니다 (Python). 나는 사용자 정의 스트라이프 체크 아웃 코드를 사용하려고하면
try:
stripe.api_key = "*******PRIVATE KEY***********"
Tokenstring = event.get('body')
Stripe_List = Tokenstring.split('=')
Token = Stripe_List[1].split('&')[0]
Email = Stripe_List[-1]
Email = Email.replace('%40', '@')
charge = stripe.Charge.create(
amount=100,
currency="gbp",
description="Example charge",
source=Token,
receipt_email=Email
)
print('Full SUCCESSFUL Transaxn Info ==== {}'.format(event))
return {
"statusCode": 302,
"headers": {
"Location": "https://example.com/#success"
}
}
이
지금<form action="https://XXXXXXX.execute-api.eu-central-1.amazonaws.com/beta" method="POST">
와 HTML 본문에서 매우 간단하게 호출, 내가 얻을 : Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
내 자바 스크립트 코드
is :
var handler = StripeCheckout.configure({
key: '*****PRIVATE KEY*****',
image: 'logo.png',
locale: 'auto',
token: function(token) {
var xhr = new XMLHttpRequest();
xhr.open("POST","https://XXXXXXX.execute-api.eu-central-1.amazonaws.com/beta", true);
xhr.setRequestHeader('Content-Type','application/json');
xhr.setRequestHeader('Access-Control-Allow-Origin','*');
xhr.onreadystatechange = handler;
xhr.send(JSON.stringify({
body : token
}));
}
});
아마존의 API 게이트웨이에서 OPTIONS를 사용하여 아마존 API 게이트웨이에서 CORS를 사용할 수있게했습니다. 나는 비행 전 요청을 전달하고 람다 함수를 실행 할 수있는 방법
?
'xhr.setRequestHeader ('Access-Control-Allow-Origin', '*');는 분명히 속하지 않습니다. 그것은 요청 헤더가 아니라 응답 헤더입니다. 'Origin 'null'...'http : // localhost' 또는 웹 서버가 아닌 컴퓨터의 HTML 파일에서 웹 사이트를 테스트 할 수 있습니까? –
localhost 및 https 도메인에서 실행중인 @ Michael-sqlbot을 모두 시도했는데 양쪽 모두에서 동일한 문제가 발생했습니다. /! –
** 동일한 ** 오류가 있어서는 안되며 차이가있을 수 있습니다. https 도메인을 사용하여 표시되는 내용을 표시하고 요청 및 응답 헤더를 캡처하십시오. –