typescript Supabase Edge函数表示未传递几何体

gzszwxb4  于 2022-12-14  发布在  TypeScript
关注(0)|答案(2)|浏览(146)

我用下面的代码调用一个超库边函数

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的示例代码运行它,遇到了同样的问题。

lhcgjxsq

lhcgjxsq1#

添加内容类型头是否有效?

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",
  {
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      plan_data
    }),
  });
  console.log(data, error)
}
yc0p9oo0

yc0p9oo02#

Supabase SDK将负责json编码,因此您不需要自己完成。

async function getData(plan_data){
        const { data, error } = await supabase.functions.invoke("create-stripe-checkout",
          {
             body: { plan_data },
          }
        )
        console.log(data, error)
      }

您应该能够像下面这样获取“边函数”上的数据:

const { plan_data } = await req.json()
console.log(plan_data)

相关问题