我用下面的代码调用一个超库边函数
async function getData(plan_data){
console.log(plan_data)
console.log(JSON.stringify({plan_data}))
const { data, error } = await supabase.functions.invoke("create-stripe-checkout",
{
body: JSON.stringify({
plan_data
}),
}
)
console.log(data, error)
// console.log(data)
}
在边缘功能I中,控制台记录了请求,并显示bodyUsed:false。从本质上讲,edge函数的行为类似于并认为没有传递任何值。(值被正确地传递给getData函数)。我已经对语法做了一些尝试,但没有效果,我是否遗漏了什么?
EDIT:边缘功能如下
import { serve } from "https://deno.land/std@0.131.0/http/server.ts"
serve(async (req) => {
if (req.method === "OPTIONS"){
return new Response (null, {
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "apikey, X-Client-Info, Authorization, content-type",
}
})
}
console.log(req)
const { planId } = await req.json()
console.log(planId)
return new Response(
JSON.stringify({ planId }),
{ headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "apikey, X-Client-Info, Authorization, content-type",
// "Content-Type": "application/json",
} },
)
})
编辑:我试着用supabase的示例代码运行它,遇到了同样的问题。
2条答案
按热度按时间lhcgjxsq1#
添加内容类型头是否有效?
yc0p9oo02#
Supabase SDK将负责json编码,因此您不需要自己完成。
您应该能够像下面这样获取“边函数”上的数据: