【问题标题】:How do you refresh a page and persist the Referer header您如何刷新页面并保留Referer标头
【发布时间】:2016-09-01 21:58:24
【问题描述】:

我需要务实地刷新我的页面(例如location.reload(true);),但也要保持原来的http referer header。

如果您单击浏览器上的刷新按钮,http referer 标头仍然存在。我知道有一个ton 在javasript 中刷新页面的不同方式,有没有办法维护http referer?

谢谢!

【问题讨论】:

标签: javascript html http-referer


【解决方案1】:

您不能强制 document.referrer 的值是重新加载后的特定值。但是有一些解决方法。

一种快速、不显眼的技术是将此状态保存在用户的sessionStoragelocalStorage 中。

// Get the last known referrer
const referrer = JSON.parse(localStorage.getItem('myApp')).referrer;

// Save the current referrer.
localStorage.setItem('myApp', JSON.stringify({
    referrer : document.referrer
}));

您还可以通过将某些状态存储在查询字符串或片段标识符中来将某些状态与重新加载相关联。

const referrer = document.referrer;

if (referrer) {

    let query = location.search;

    if (query) {
        query += '&';
    }

    query += 'referrer=' + encodeURIComponent(referrer);

    location.search = query;  // reloads the page
}

但是,如果您对页面内容没有太多控制权,则查询字符串方法可能会出现问题,因为某些看到查询的应用程序(前端和后端)会认为他们需要做一些特殊的事情。所以它有可能产生意想不到的副作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 2014-07-24
    • 2018-10-31
    • 2023-03-28
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多