2009-04-22 19 views
5

Tengo una URL absoluta en mi JavaScript que he codificado para window.location.

No quiero tener que cambiar esto cada vez que estoy probando mi aplicación. En PHP, habría manejado esto probando la variable $ _SERVER ["HTTP_HOST"] para averiguar en qué servidor estoy y ajustaré en consecuencia. Sin embargo, no estoy tan familiarizado con Java y me pregunto si tiene un método similar. O si tal vez incluso JavaScript tenía un método similar?

El código es el siguiente:

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

Lo que me gustaría hacer es:

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; 

En PHP me hubiera simplemente hecho esto:

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

Todas las ideas ? Supongo que estoy operando bajo la suposición de que tienes que hacer una URL absoluta para cambiar la ubicación de la ventana actual en JavaScript. Si hay otra forma de cambiar la ubicación de la ventana en JavaScript sin una URL absoluta, no dude en ofrecerla también.

Gracias de antemano ...

Respuesta

7

Lo que se necesita es:

request.getServerName() 

Un ejemplo:

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

Usted realmente debe tener búsqueda de esto, pero en JSP Es:

request.getRemoteHost() 
2

Javascript:

var server = window.location.hostname; 
4

El objeto has several properties ubicación, y el lo que querrías es hostname.

O, opcionalmente, puede utilizar una URL relativa a la raíz y simplemente establecer la propiedad pathname y no meterse en absoluto con el negocio host.

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

Tal vez esto podría ayudar.

Reemplazará cualquier palabra que desee por algo o nada. Funcionará para su pedido también.

var str = "Visit Microsoft!"; 
var res = str.replace("Microsoft", "W3Schools"); 
+1

Yeah sure, and water is blue. ¡HTF está relacionado! –

Cuestiones relacionadas