首页 > 解决方案 > 如何修改请求正文

问题描述

我正在向工作人员发送 Post 请求。帖子正文内容。

{
    "name": "value",
    "name2": "value2"
}

如果 name2=value2 那么我想修改它:

{
    "name": "value",
    "name2": "NewValue"
}

我正在使用这个脚本。

addEventListener("fetch", event => {
  event.respondWith(handleRequest(event.request));
});
async function handleRequest(r) {
  return new Response(r.body, {
    headers: {
      "Content-Type": "application/json",
      corsHeaders
    }
  })
}

如果我 json.parse(r.body) 它不起作用。我怎样才能做到这一点?我听说 r.body 是一个 ReadableStream 那么如何修改它。请帮忙。谢谢。

标签: node.jsjsonrequestserverlesscloudflare-workers

解决方案


来自MDN 文档

request.json().then(function(data) {
  // do something with your data
});

这应该可以帮助您入门:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  let requestJSON = await request.json()

  // your logic here

  return await fetch(request, {body: JSON.stringify(requestJSON)})
}

您可能希望将 JSON 解析限制为满足以下条件的请求:

(request.method === "POST" && request.headers.get("Content-Type") === "application/json")


推荐阅读