![](/img/trans.png)
[英]How can I use JavaScript on the client side to detect if the page was encrypted?
[英]How do you detect if the page is a redirect using Javascript in the client side
有没有办法让我知道当前页面是来自另一个 URL 的 301 还是 302 重定向? 怎么获取页面之前的URL?
HTTP Header 将在那里进行原产地属性检查。
简短的回答,不,您无法分辨重定向的类型。
您可以查看JavaScript中的Referer header:
https://www.w3schools.com/jsref/prop_doc_referrer.asp
document.referrer
这将告诉您用户在访问您的页面之前(通常)正在与哪个页面进行交互。 它不会告诉您它是否是重定向。 您可以针对该页面发出 AJAX HTTP 请求,以查看您是否收到 301 或 302 消息。 但这不会 100% 告诉您它是否是重定向。 如果您超过 HTTP 并且引用页面是 HTTPS,那么这个 header 没有设置。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer
要获取 url 使用 document.referrer
据我所知,没有检测 301 或 302 的好方法,尤其是通过 javascript。 您可以在这里查看答案以获取想法(但他们使用 php)。 如果您知道客户端将来自哪些 url,您可以使用从 document.referrer 获取的 url 来确定应该采取什么行动。
如果您控制重定向页面,则可以通过查询字符串传递信息。
重定向.php
<?php
header('Location: target.html?referrer='.$_SERVER['HTTP_HOST'], true, 301);
目标.html
<html>
<head>
<title>target of redirection</title>
</head>
<body>
<script>
const urlParams = new URLSearchParams(window.location.search);
const referrer = urlParams.get('referrer');
console.warn('referrer >'+referrer+'<');
</script>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.