gpt4 book ai didi

javascript - 无服务器 CORS 预检请求失败 - AWS API Stripe

转载 作者:行者123 更新时间:2023-11-28 03:52:41 26 4
gpt4 key购买 nike

我花了大约两周的时间尝试调试这个,但没有成功。

我使用 python 创建了一个 lambda 函数来创建电荷。这与 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"
}
}

这在 html 正文中通过 <form action="https://XXXXXXX.execute-api.eu-central-1.amazonaws.com/beta" method="POST"> 调用非常简单

现在,当我尝试使用自定义 strip 结帐代码时,我得到:

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.

我的 JavaScript 代码是:

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
}));
}
});

我已在 Amazon 的 API 网关中设置了用于响应的选项,并在亚马逊 API 网关上启用了 CORS。

enter image description here

enter image description here

如何传递飞行前请求并让 lambda 执行该函数?

最佳答案

除了在 API Gateway 控制台上启用 CORS 之外,您的 Lambda 函数本身还必须返回这些 CORS header 。

return {
"statusCode": 302,
"headers": {
"Location": "https://example.com/#success",
"Access-Control-Allow-Origin": "*",
}
}

关于javascript - 无服务器 CORS 预检请求失败 - AWS API Stripe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47845783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com