6

我在我的 JavaScript 中使用了一个绝对 URL,我为 window.location 硬编码。

我不想在每次测试我的应用程序时都更改它。在 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 中的窗口位置,请随时提供。

提前致谢...

4

4 回答 4

7

你需要的是:

request.getServerName()

一个例子:

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
于 2009-04-22T22:07:15.377 回答
5

Javascript:

var server = window.location.hostname;
于 2009-04-22T21:59:48.467 回答
4

location 对象有几个属性,你想要的是hostname

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

location.pathname = "/store/results/index.jsp";
于 2009-04-22T22:01:19.900 回答
0

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

request.getRemoteHost()
于 2009-04-22T21:59:44.100 回答