想在网站中获取访问站点来源的方式,前端使用 `document.referrer`,想着这样就能知道是从百度推广来的还是从百度自然搜索来的。推广又是通过哪个关键词来的。
想获取到的地址是完整的,如下:
https://test.com?from=xxxx&keyword=bbbb
但我通过自己的服务器进行跳转测试时,发前端获取referrer时只能获取到域名不能获取到后面的参数。只能获取域名,如下:
https://test.com/
后来查资料说:
Chrome85 的 referer 策略修改
原本默认的 referer 策略(policy)是no-referrer-when-downgrade,即允许referer带上来源页面地址上的请求参数,Chrome85+将策略修改为strict-origin-when-cross-origin,即如果请求地址与请求页面非同源,将只携带请求的域名,不会再带上来源页面地址的请求参数。
解决方式是需要在来源页面或来源服务器做处理:
方法一:来源页面中加代码
<metaname="referrer"content="no-referrer-when-downgrade"/>
方法二:来源页面nginx加代码
add_header Referrer-Policy no-referrer-when-downgrade;
那完了,我们想统计百度哪个关键词来的,只能在百度服务器上设置了?
后来试了一下,百度好像已经设置了,可以获取。先这样吧。