如何刷新页面并保持Referer标头
How do you refresh a page and persist the Referer header
我需要务实地刷新页面(例如location.reload(true);
),但也需要维护原始的http-referer标头。
如果单击浏览器上的刷新按钮,http-referer标头将持续存在。我知道在javasript中有很多不同的刷新页面的方法,有没有一种方法可以维护http-referer?
谢谢!
您不能强制document.referrer
的值为重载中特定的值。但也有变通办法。
一种快速、不引人注目的技术是在用户的sessionStorage或localStorage中保持这种状态。
// 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
}
但是,如果您对页面内容没有太多控制,那么查询字符串方法可能会有问题,因为一些看到查询的应用程序(前端和后端)会认为他们需要做一些特殊的事情。因此,它有可能产生意想不到的副作用。
相关文章:
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 如何编写一个具有公共标头的批处理
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- 如何使用自定义标头跨域执行AJAX POST
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- IIS动态HTTP响应标头
- 将接受标头参数传递给jQueryAJAX
- NodeJS错误-Can't在发送标头后设置标头
- JavaScript过期标头可以't设置为12个月
- 无法在基于Cordova的应用程序中读取Set Cookie标头
- 错误:Can't在从forEach循环发送标头后设置标头
- jquery ui自动完成导致标头错误
- 如何在不检查HTTP标头的情况下检测移动浏览器
- 使我的视频标头响应
- Express 4错误:Can't在发送标头后设置标头
- 飞行前响应中的访问控制允许标头不允许Angularjs请求标头字段访问控制允许标题
- django没有访问控制允许删除原始标头
- html标头以在请求中发送回
- 如何刷新页面并保持Referer标头