2 返回获取请求

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

我在我的网站前面使用这个工人代码,但是当我使用

return fetch(request);
而不是第24行的return
fetch(url, init);
参数时,post操作不会发生。

如何用

fetch(url, init);
替换
return fetch(request);

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

async function handleRequest(request) {
  const ip = request.headers.get("CF-Connecting-IP");
  const countryCode = request.headers.get("CF-IPCountry");

  const response = await fetch("https://mypage.xx/ip.txt");
  const text = await response.text();

  const ipInfo = text.trim().split('\n').find(line => line.startsWith(ip));
  if (ipInfo) {
    return fetch(request);
  }

  const url = "https://mypage.xx/public.php";
  const data = new URLSearchParams({ "data": ${ip}|${countryCode} });
  const init = {
    method: "POST",
    body: data
  };

  return fetch(url, init);
}

我怎样才能使用

return fetch(request);
而不是
fetch(url, init);
来使这段代码按我想要的方式工作?

javascript serverless cloudflare cloudflare-workers
© www.soinside.com 2019 - 2024. All rights reserved.