2009-04-22 39 views
5

Tôi đã đi một URL tuyệt đối trong JavaScript của mình mà tôi đã mã hóa cứng cho window.location.

Tôi không muốn thay đổi điều này mỗi lần tôi thử nghiệm ứng dụng của mình. Trong PHP, tôi đã xử lý điều này bằng cách kiểm tra biến $ _SERVER ["HTTP_HOST"] để tìm ra máy chủ nào tôi đang sử dụng và điều chỉnh cho phù hợp. Tuy nhiên, tôi không quen thuộc với Java và tôi tự hỏi nếu nó có một phương pháp tương tự? Hoặc nếu có lẽ cả JavaScript cũng có một phương pháp tương tự?

Mã này là như sau:

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

Những gì tôi muốn làm là:

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; 

Trong PHP tôi sẽ chỉ làm điều này:

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

Bất kỳ ý tưởng ? Tôi cho rằng tôi đang hoạt động theo giả định rằng bạn phải thực hiện một URL tuyệt đối để thay đổi vị trí của cửa sổ hiện tại trong JavaScript. Nếu có một cách khác để thay đổi vị trí cửa sổ trong JavaScript mà không có URL tuyệt đối, vui lòng cung cấp điều đó.

Cảm ơn trước ...

Trả lời

7

gì bạn cần là:

request.getServerName() 

Một ví dụ:

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

Bạn thực sự cần phải tìm kiếm cho điều này nhưng trong JSP đó là:

request.getRemoteHost() 
2

Javascript:

var server = window.location.hostname; 
4

Vị trí đối tượng has several properties, và một trong những bạn muốn là hostname.

Hoặc, bạn có thể tùy ý chỉ sử dụng URL gốc tương đối và chỉ cần đặt thuộc tính pathname và không gây rối với doanh nghiệp chủ nhà!

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

Có lẽ điều này có thể giúp đỡ.

Nó sẽ thay thế bất kỳ từ nào bạn muốn bằng bất cứ thứ gì hoặc không có gì. Nó cũng sẽ làm việc cho yêu cầu của bạn.

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

Chắc chắn, và nước có màu xanh dương. HTF là liên quan này !!! –

Các vấn đề liên quan