2009-04-22 14 views
5

Ich habe eine absolute URL in meinem JavaScript, die ich für window.location hart codiert habe.

Ich möchte dies nicht jedes Mal ändern müssen, wenn ich meine App teste. In PHP hätte ich das gehandhabt, indem ich die Variable $ _SERVER ["HTTP_HOST"] getestet habe, um herauszufinden, auf welchem ​​Server ich bin, und entsprechend anzupassen. Allerdings bin ich nicht so vertraut mit Java und frage mich, ob es eine ähnliche Methode hat? Oder wenn vielleicht sogar JavaScript eine ähnliche Methode hatte?

Der Code ist wie folgt:

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

Was würde ich tun möchte, ist:

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; 

In PHP würde ich dies gerade getan haben:

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

Irgendwelche Ideen ? Ich gehe davon aus, dass Sie eine absolute URL verwenden müssen, um den Speicherort des aktuellen Fensters in JavaScript zu ändern. Wenn es eine andere Möglichkeit gibt, den Fensterort in JavaScript ohne eine absolute URL zu ändern, können Sie dies auch gerne tun.

Vielen Dank im Voraus ...

Antwort

7

Was Sie brauchen, ist:

request.getServerName() 

Ein Beispiel:

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

Sie wirklich suchen für diese haben sollte, aber es ist in JSP:

request.getRemoteHost() 
2

Javascript:

var server = window.location.hostname; 
4

Die Lage Objekt has several properties, und der Computer Sie möchten, ist hostname.

Oder Sie können optional einfach eine root-relative URL verwenden und einfach die pathname-Eigenschaft festlegen und sich nicht mit dem Host-Geschäft herumschlagen!

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

Vielleicht helfen könnte.

Es ersetzt alle gewünschten Wörter durch nichts oder nichts. Es wird auch für Ihre Anfrage funktionieren.

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

Ja sicher, und Wasser ist blau. HTF ist das verwandt !!! –