我只是使用Stripe API在Firebase云函数中创建订阅。
我遇到了错误:未处理的拒绝 错误:发送标头后无法设置。
这是我的index.ts:
export const subscribe = functions.https.onRequest((req, res) => {
res.header('Content-Type','application/json');
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type');
//respond to CORS preflight requests
if (req.method == 'OPTIONS') {
res.status(204).send('');
}
stripe.subscriptions.create({
customer: req.body.sid,
items: [
{
plan: "plan_123123123",
},
]
}, function(err, subscription) {
// asynchronously called
if (err) {
return res.send(err)
}
else {
return res.send(subscription)
}
}
);
});
答案 0 :(得分:1)
代替
if (req.method == 'OPTIONS') {
res.status(204).send('');
}
尝试:
if (req.method == 'OPTIONS') {
return res.status(204).send('');
}
否则,如果发生OPTIONS(飞行前)请求,则会两次调用res.send()
,从而导致错误。