【问题标题】:Can I clear referrer upon refresh in Vue app built with Vue-router我可以在使用 Vue-router 构建的 Vue 应用程序中刷新时清除引荐来源网址吗
【发布时间】:2025-11-27 03:15:02
【问题描述】:

网页重定向到 Vue 应用程序。这个 Vue 应用程序有几个页面,它使用 Vue-router。在初始化 Vue 应用程序时,我们会运行一些基于引用者的逻辑。

然后用户在 Vue 应用程序的页面之间导航,并在某个时候决定刷新页面。在这种情况下,引荐来源网址仍然是前一页(为什么?) - 因此基于引荐来源网址的逻辑再次执行。这是有问题的,不应该发生。

那么 - 我怎样才能在 SPA 加载后摆脱这个引荐来源网址?或者最终当用户在 SPA 中导航时?

PS:这发生在 Chrome 和 Safari 上,而不是在 Firefox 上。至少在我的机器上。

【问题讨论】:

    标签: vue.js vue-router http-referer


    【解决方案1】:

    修改referrer有很多技巧(How to manually set REFERER header in Javascript?

    然而,它们都远非完美。这是因为 referrer 是被禁止的标头之一,故意不能以编程方式修改 (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name)

    在您的情况下,我能想到的唯一想法是在您第一次运行与引用者相关的逻辑时将一些密钥放入 localStorage 或 sessionStorage,然后如果该密钥已存储,则阻止它再次运行。

    【讨论】:

    • 我最终将信息保存在 sessionStorage 中,然后我正在检查它。前段时间我有同样的想法,但不知道要在那里保存什么信息。现在,在你的回复之后,我又想了 - 现在我设法弄清楚了:)
    最近更新 更多