【问题标题】:How would I make a meta redirect that redirects to the URL stored in the parameter?如何进行元重定向以重定向到存储在参数中的 URL?
【发布时间】:2019-09-11 17:49:57
【问题描述】:

我正在尝试设置一个服务,它将用户重定向到存储在?url= 参数中的 URL,我该怎么做?

我尝试过使用元

http-equiv="refresh"

out.print(request.getParameter("ur;")) %>

然而,所发生的只是页面在循环中重新加载。不太确定我是否需要使用引号(例如 /?url="https://google.com")

<meta http-equiv="refresh"
      content="0; URL="<%
out.print(request.getParameter("redirect")) %>">

我需要做的是,当用户被重定向到“https://example.com/exampledir/index.html?url=https://anotherwebsite.com”(只是一个示例 url)时,index.html 上的脚本将获取参数并准确地重定向到它。实际发生的是页面只是循环重新加载。

【问题讨论】:

  • &lt;% out.print(request.getParameter("ur;")) %&gt; 这应该是什么语言?这不是 JavaScript 的工作方式。
  • 我的不好,用 javascript 不是很好,所以我最终用我所拥有的。
  • 如果您想要使用 JavaScript 的解决方案,请在问题上留下 JavaScript 标记。我试图澄清您是否使用某种服务器端技术——&lt;% … %&gt; 看起来像 ASP 或可能是 JSP,尽管我真的不熟悉它——或者某种模板语言——&lt;% … %&gt; 也可能是 EJS。如果您正在使用其他语言或工具来生成 HTML,请务必在问题中注意这一点。
  • 我没有设置任何服务器端的东西,而只是使用它来托管浏览器完成大部分工作并直接重定向到参数中的 URL 的文件。但是,似乎甚至无法读取参数。我做了一些研究,它看起来确实像 JSP,这是我一直在做的不正确的事情。

标签: html url redirect parameters


【解决方案1】:

由于您没有使用任何服务器端语言,因此您将无法在渲染期间生成不同的元标记。相反,您需要在页面加载后使用 JavaScript 执行此操作。

在页面底部添加一个脚本标签,如下所示:

<script>
  var redirect = new URL(window.location).searchParams.get('redirect');
  if (redirect) window.location = redirect;
</script>

现在,如果您浏览到这样的页面:http://&lt;myserver&gt;/myfile.html?redirect=https://google.com,您将被重定向到 https://google.com

有关参考,请参阅 MDN 文章:

我还强烈建议您通读Java​Script basics,以确保您理解此处介绍的总体概念。

【讨论】:

  • 谢谢!这很有效,是的,我对 JavaScript 还很陌生,所以我一定会看看它。
猜你喜欢
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 1970-01-01
  • 2019-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多