如何做一个http
在Javascript中,我可以重定向并保存查询字符串和片段ID,如下所示:
window.location = "NEW_LOCATION" + window.location.search + window.location.hash;
对于没有Javascript的网站,您可以使用http-equiv meta标题。 但是这会丢弃查询字符串和片段ID:
<head>
<meta http-equiv="Refresh" content="300; url=NEW_LOCATION" />
</head>
有没有一种方法可以使用http-equiv =“refresh”来保留查询字符串和片段ID?
不是没有服务器端脚本语言,它将正确的URL放入HTML标记中(或直接发送Refresh
标题)。
您可以使用JavaScript通过查询字符串和散列来更新元标记。
更新一个更好的方法IE8 +将是一个noscript标记和JavaScript支持的重定向。 在html元素上添加重定向作为data-destination属性,以便脚本可以轻松抓取它。
<!DOCTYPE html>
<html data-destination="http://stackoverflow.com">
<head>
<noscript><meta id="redirect" http-equiv="refresh" content="0; url=http://stackoverflow.com"></noscript>
</head>
<body>
This page has moved. Redirecting...
<!-- Redirect in JavaScript with meta refresh fallback above in noscript -->
<script>
var destination = document.documentElement.getAttribute('data-destination');
window.location.href = destination + (window.location.search || '') + (window.location.hash || '');
</script>
</body>
</html>
我正在使用以下脚本(在表单之后,但在主体结束之前)。 必需的URL(“hidAutoURL”)首先存储在隐藏变量中(从服务器端)。
document.write
用于更新meta
。
<BODY>
<FORM>
</FORM>
<script>
function getAutoURL()
{
var url = document.getElementById('hidAutoURL').value;
return url;
}
//Update META for auto-refresh
var configuredTime = document.getElementById('hidRefrTime').value;
var content = configuredTime + ';url=' + getAutoURL('url');
document.write('<meta http-equiv="refresh" content="'+content + '"/>');
</script>
</BODY>
参考
上一篇: How to do a http
下一篇: PHP Header Redirect problem (no, not that common problem)