【问题标题】:JSP or JavaScript equivalent to PHP's $_SERVER["HTTP_HOST"]?JSP 或 JavaScript 等价于 PHP 的 $_SERVER["HTTP_HOST"]?
【发布时间】:2010-10-21 05:36:03
【问题描述】:

我已经在我的 JavaScript 中为 window.location 硬编码了一个绝对 URL。

我不想在每次测试我的应用程序时都更改此设置。在 PHP 中,我会通过测试 $_SERVER["HTTP_HOST"] 变量来找出我在哪个服务器上,并相应地进行调整来处理这个问题。但是,我对 Java 不太熟悉,想知道它是否有类似的方法?或者如果 JavaScript 也有类似的方法?

代码如下:

var url = "http://172.17.1.107/store/results/index.jsp";
window.location = url;

我想做的是:

var server = [something that returns just 172.17.1.107 (with or without the http:// is fine)]
var url = "http://" + server + "/store/results/index.jsp";
window.location = url;

在 PHP 中我会这样做:

var server = <?= $_SERVER["HTTP_HOST"] ?>
var url = "http://" + server + "/store/results/index.php";
window.location = url;

有什么想法吗?我想我是在假设您必须使用绝对 URL 来更改 JavaScript 中当前窗口的位置的情况下进行操作的。如果有另一种方法可以在没有绝对 URL 的情况下更改 JavaScript 中的窗口位置,请随时提供。

提前谢谢...

【问题讨论】:

    标签: java php javascript url window.location


    【解决方案1】:

    你真的应该搜索这个,但在 JSP 中它是:

    request.getRemoteHost()
    

    【讨论】:

      【解决方案2】:

      Javascript:

      var server = window.location.hostname;
      

      【讨论】:

        【解决方案3】:

        位置对象has several properties,您想要的是hostname

        或者,您可以选择只使用相对于根的 URL 并设置 pathname 属性,而完全不干扰主机业务!

        location.pathname = "/store/results/index.jsp";
        

        【讨论】:

          【解决方案4】:

          你需要的是:

          request.getServerName()
          

          一个例子:

          <%
          String path = request.getContextPath();
          String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
          %>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-04-04
            • 2011-05-29
            • 2011-07-23
            • 1970-01-01
            • 1970-01-01
            • 2010-09-29
            • 2018-05-23
            相关资源
            最近更新 更多