Failed to Set Referrer Policy

Posted onLeave a commentCategories技术文章

最近把公司一个老旧的WordPress应用了https,然后又升级到最新的core和plugin。QA报告说browser console里有这样一个报警

Failed to set referrer policy: The value '' is not one of 'no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', or 'unsafe-url'. The referrer policy has been left unchanged.

这个bug起因是多了一个Referrer-Policy的头,还是个空值

经查,W3 Total Cache在https版本下,多了一个配置section叫 Security Headers.

在这个section下面,赫然就有Referrer Policy的配置。所以解决这个问题很简单,把该选项去掉就是

比较莫名其妙的是,既然浏览器会默认设置no-referrer-when-down-grade值,为什么W3 Total Cache费这个事情,去设置一个不合法的空值呢?这个估计除了W3 Total Cache的作者没人知道了。

解决了公司的问题,我检查了下本博客,很明显,我的W3 Total Cache也是该默认的非法空值。但是让我大吃一惊的是,我博客的http response并没有去设置这个非法的http头。

这尼玛有点绕了。

再经查,原来公司的那个应用是安装在Apache服务器上的,你在后台点W3 Total Cache任何设置,都是立刻生效!所以公司的网站该错误头直接反馈出来了。

而我的服务器是Nginx,Nginx是没有像.htaccess这样的机制的。这也是为什么,即便我的配置里,看上去这个头设置是个错误的值,但是在我的服务器上是不生效的。

 

参考文章:

WordPress Failed to Set Referrer Policy Response Headers – W3 Total Cache

发表评论

电子邮件地址不会被公开。 必填项已用*标注