سؤال

لقد ذهبت عناوين URL مطلقة في JavaScript الخاص بي الذي لدي بجد مشفرة للنافذة. الموقع.

لا أريد أن أتعرض لتغيير هذا كل مرة أقوم فيها باختبار تطبيقي. في PHP، كنت قد تعاملت مع هذا عن طريق اختبار المتغير $ _server ["http_host"] لمعرفة خادم ما أنا عليه، وضبط وفقا لذلك. ومع ذلك، أنا لست على دراية بجافا وأتساءل عما إذا كان لها طريقة مماثلة؟ أو إذا ربما كان جافا سكريبت طريقة مماثلة؟

رمز على النحو التالي:

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. إذا كانت هناك طريقة أخرى لتغيير موقع النافذة في JavaScript دون عنوان URL المطلق، فلا تتردد في تقديم ذلك أيضا.

شكرا لك مقدما...

هل كانت مفيدة؟

المحلول

ما تحتاجه هو:

request.getServerName()

مثال:

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

نصائح أخرى

كائن الموقع لديه العديد من الخصائص, ، والآخر تريده هو اسم المضيف.

أو، يمكنك اختياريا فقط استخدام عنوان URL النسبي الجذري وتوضع فقط اسم المسار الممتلكات وليس الفوضى مع الأعمال المضيفة على الإطلاق!

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

جافا سكريبت:

var server = window.location.hostname;

يجب أن يكون لديك حقا بحثا عن هذا ولكن في JSP IT's:

request.getRemoteHost()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top