url跳转http不携带referer方法

admin2025-10-10 23:27:439297

目录

一、遇到的问题二、原因三、提供三种解决方式

一、遇到的问题

当A网址页面跳转新界面打开B网站的静态资源时报404,

比如 http://www.A.com 页面有一个按钮,点击后会打开一个新页签请求B网站的一个文件https://www.B.com/test.txt 因为跳转时请求头携带了referer,导致B网站拦截,所以访问不到资源报404。而复制https://www.B.com/test.txt 粘贴到新页签就能正常打开。

二、原因

我们在从一个网站A点击链接进入另一个网站B页面时,浏览器会在header里加上Referer值,来标识这次访问的来源页面。而B网站对Referer进行了拦截导致。

三、提供三种解决方式

1、在A网站页面头部加入下面meta,所有跳转便不会携带referer

拓展: same-origin: 对于同源的请求会发送引用地址,但是对于非同源请求则不发送引用地址信息。 比如,www.AAA.com/page1.html 跳转到 www.AAA.com/page2.html 同源会携带 referrer, www.AAA.com/page1.html 跳转到 www.BBB.com/page2.html 不同源不会携带 referrer,

除了可以设置 no-referrer 和 same-origin 其他 referrer 的设置值可参考: Referrer-Policy W3c-Referrer Policy Remove http referer

2、使用window.open来去除referrer 如果是新页签打开:

window.open('javascript:window.name;','