无法将 JSON 对象发布到 cloudflares KV 存储 - 返回 CORS 错误加上正文不会通过

问题描述 投票:0回答:0

我试图通过从我的客户端前端获取的帖子传递一个 json 对象。

我已经有一个提取工作,它返回一个已经存储的对象列表,并尝试了相同的过程,但传递了一个 JSON 参数,尽管有相同的标头,但它不会工作。

我看过这篇文章,它似乎与我有类似的问题,但在尝试将上述修复应用于我的问题后,同样的问题发生了。 如何正确配置我的 Cloudflare Worker 以将我发送的对象保存在 Cloudflare 的 KV(存储)中?

这是我的前端

async function postJSON(data) {
  console.log("Data: " + data);
  try {
    const response = await fetch("https://cas-4d0.pages.dev/putDataPoint", {
      method: "POST", // or 'PUT'
      headers: {
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Methods": "GET,HEAD,POST,OPTIONS",
        "Access-Control-Max-Age": "86400",
        "Content-Type": "application/json",
      },
      body: JSON.stringify(data),
    });

    const result = await response.json();
    console.log("Success:", result);
  } catch (error) {
    console.error("Error:", error);
  }
}

这是我的后端


export async function onRequest(context) {
  let kList = (await context.env.dataPoints.list()).keys;
  let numberInList = kList.length;

  console.log(await context);
  let res = await context.env.dataPoints.put(numberInList, body);
  
  const corsHeaders = {
    "Access-Control-Allow-Origin": "*",
    "Access-Control-Allow-Methods": "GET,HEAD,POST,OPTIONS",
    "Access-Control-Max-Age": "86400",
  };
  return new Response((res), { headers: corsHeaders });
  //return new Response(JSON.stringify(context.env), { headers: corsHeaders });
}

检查这个时我的控制台上的错误console errors

在检查 cloudflare 上的日志流时,会弹出此错误,提示主体未定义。 我知道 json 对象正在传递给 post 函数,因为它可以在控制台上输出。

cloudflare error

任何帮助将不胜感激。

javascript fetch-api cloudflare cloudflare-workers cloudflare-pages
© www.soinside.com 2019 - 2024. All rights reserved.