Javascript 如果浏览器刷新了节点,则更改url
我有一个节点应用程序。假设url如下所示:Javascript 如果浏览器刷新了节点,则更改url,javascript,node.js,refresh,Javascript,Node.js,Refresh,我有一个节点应用程序。假设url如下所示: http://www.testurl.com/?access_token=1234。此url由Spotify生成,因为使用其API需要此access\u tokn 仅当用户刷新页面时,我希望url删除url的最后一部分并加载http://www.testurl.com。重要的是,它只发生在页面刷新时,因此用户必须再次验证自己 ,但它们都不起作用。我认为他们没有工作的原始海报也没有被接受的答案 我已经看到,这是可能的。是否有人知道是否可以使用节点检测等价
http://www.testurl.com/?access_token=1234
。此url由Spotify生成,因为使用其API需要此access\u tok
n
仅当用户刷新页面时,我希望url删除url的最后一部分并加载http://www.testurl.com
。重要的是,它只发生在页面刷新时,因此用户必须再次验证自己
,但它们都不起作用。我认为他们没有工作的原始海报也没有被接受的答案
我已经看到,这是可能的。是否有人知道是否可以使用节点
检测等价物
php解决方案如下所示
$pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0';
我也试过以下方法,但也不起作用
window.onbeforeunload = function(event){
window.location.href = 'http://www.google.com';
};
为什么不在页面加载时将其从url中删除,以便在页面刷新时将其删除
history.replaceState(null, '', location.pathname);
不知道这是否是解决任何问题的最佳方法,但可以通过访问
request.headers
object来检查节点内部的HTTP头。下面是一个示例代码:
consthttp=require('http');
const url=require('url');
http.createServer(函数(req,res){
文书标题(200{
“内容类型”:“文本/html”
});
//家庭控制器
if(url.parse(req.url.path==“/”){
if(请求头[“缓存控制”]&&req.headers[“缓存控制”]=“最大年龄=0”){
console.log(“用户刷新”);
}否则{
日志(“用户未刷新”);
}
res.end(“你好!”;
}否则{
res.statcode=404;
res.end(“未找到”);
}
}).听(3000)代码>