Cloudflare工人地理位置

问题描述

我们有一个Cloudflare Enterprise计划,并希望将regionCode(状态缩写)传递到报头响应中并返回给客户端。 Cloudflare请求是req.cf.regionCode,但是由于任何原因,当我尝试将其分配给变量时,都会不断出现错误,因此语法有问题。

最终标头输出应为:

状态:CA(将显示客户端IP查找中的状态缩写,在这种情况下为加利福尼亚)

addEventListener("fetch",event => {
  event.respondWith(fetchAndReplace(event.request))
})

async function fetchAndReplace(request) {
  
  const res = await fetch(request)
  let modifiedHeaders = new Headers() 
  let state = (req.cf.regionCode)
  

  modifiedHeaders.set('Content-Type','text/html')
  modifiedHeaders.append('Pragma','no-cache')
  modifiedHeaders.append("state",`${state}`) 


  //Return maint page if you're not calling from a trusted UA
  if (request.headers.get("User-Agent") !== "Preprod") 
  {
    // Return modified response.
    return new Response(maintPage,{
      status: 503,headers: modifiedHeaders
    })
  }
  else //Allow users from trusted into site
  {
    //Fire all other requests directly to our WebServers
    return fetch(request)
  }
}

let maintPage = `
This is a test
`;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)