设置Referrer-Policy后为什么请求头还是带Referer?

Mr-文科 阅读 23

在Vue项目里设置了标签,但用axios发请求时发现Referer头还是包含了完整URL,是不是哪里设置错了?

代码是这样写的:


<meta 
  name="referrer" 
  content="no-referrer-when-downgrade"
>

用开发者工具检查网络请求,跨域请求的headers里Referer明明应该被限制,但实际还是显示完整来源地址。试过把策略改成”no-referrer”也不管用,有没有可能和axios的配置冲突?

我来解答 赞 5 收藏
二维码
手机扫码查看
2 条解答
一丽苹
一丽苹 Lv1
标签的referrer策略只对页面本身的资源加载生效,比如图片、脚本等,不会影响axios这类通过JS发起的请求。如果你不想让axios请求带Referer头,直接在axios配置里删掉它就行:

axios.defaults.headers.common['Referer'] = undefined;


试试看,应该就能解决你的问题。
点赞 8
2026-02-01 21:02
UX红梅
UX红梅 Lv1
这个是针对页面跳转的 Referer 控制,但和 axios 发起的 AJAX 请求没关系。浏览器对 XMLHttpRequest 和 Fetch API(axios 基于这个)有不同规则,meta 标签管不着这些。

如果你想控制 axios 的 Referer,直接在 axios 请求头里覆盖它就行:

axios.get('https://example.com/api', {
headers: {
'Referer': '' // 或者设置为你想要的值
}
})


如果要全局生效,配个默认值:

axios.defaults.headers.common['Referer'] = '';


懒得折腾的话就认命吧,反正 Referer 存在是为了让服务器知道请求来源,没那么可怕。
点赞 9
2026-01-31 14:05