我正在尝试使用 cloudflare 工作人员通过 301 重定向从 HTTPS 域A 到 HTTPS 域B 传递 Ref(f)erer。
1)用户在浏览器地址字段中输入https://domainA.com,这样的请求头被发送到服务器:
然后,此请求由此类 Cloudflare 工作人员处理:
<...>
return new Response("Will Redirect", {
status: 302,
statusText: 'Found',
headers: {
Location: "https://domainB.com",
"Referrer-Policy": "unsafe-url"
}
})
<...>
此代码生成这样的 HTTP 响应:
看起来“到目前为止一切都很好” - 推荐人策略标头已设置并正在出现,但在请求/响应标头之前 Chrome 显示同一请求的“常规”信息:
据我了解,^ 是请求/响应组合的快速摘要。此推荐人政策:no-referrer-when-downgrade 行在哪里到达那里?是 Chrome 的默认请求参数还是 Chrome 默认将其添加到响应中?或者这些是 Cloudflare 的一些默认设置?我想这是我无法通过推荐人的潜在原因之一。
然后 302 重定向加载 domainB 并且此请求由第二个工作人员处理:
<...>
let refr = request.headers.get('Referer')
let resp = new Response(`Testing referer: ${refr}`)
resp.headers.set('Referrer-Policy', 'unsafe-url')
return resp
<...>
第二个请求/响应如下:
但是来自 domainB 的响应如下所示:
虽然我期待看到 Testinf 推荐人: domainA.com 。我将如何实现这一目标?
谢谢!