我们有一个 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
`;