2016-04-10 5 views
0

私はJavaScriptのプログラマーではありませんが、私のウェブサイトの主要なindex.htmファイルで非常に単純なルーティングを行う必要があります。状況:3つの主要なISAPIアプリケーション(app1.dll、app2.dll、app3.dll)が、同じ社内サーバーによってすべてホストされています。3つのアプリケーション用のシンプルなサーバー側html/JSルータ

これらは、app1.com、app2.com、app3.comなどの3つの外部ドメインも表します。これらのドメインはすべて同じサーバーおよびindex.htmページに当てられます。私がindex.htmページでやりたいことは、それ以上のユーザアクション(つまり、同じブラウザウィンドウを使用)をせずに適切なサーバアプリケーションにリダイレクトすることです。私は以下のスクリプトとホスト名を取得して表示できることを学んできたチャンスをうかがっ今

、:

<script> 
document.getElementById("hostname").innerHTML = 
"Hostname is: " + window.location.hostname + "<br/>"; 
</script> 

は今、私が何をしたいのか、以下に沿って何か(任意の間違った構文を許す)です。

<script> 
if { hostname = "www.app1.com" { 
    var url = "http://www.app1.com/isapi/app1/app1.dll/"; 
} else { 
    if { hostname = "www.app2.com" { 
    var url = "http://www.app1.com/isapi/app1/app2.dll/"; 
    } else { 
    if { hostname = "www.app3.com" { 
     var url = "http://www.app3.com/isapi/app1/app3.dll/"; 
    } else { 
    } 
    } 
} 
"GO TO URL"; 
</script> 

ボタンやその他の操作を行わずに「GO TO URL」をエンコードするにはどうすればよいですか?

var xhr = new XMLHttpRequest(); 
xhr.open('GET', url, false); 
xhr.send(); 
return; 

私はGETコマンドが必要だと思いますが、これを実行することができます。

大歓迎です。

+0

申し訳ありませんが、このライン するvar URL = "http://www.app1.com/isapi/app1/app2.dll/"。 は である必要があります。var url = "http://www.app2.com/isapi/app2/app2.dll/"; – user3504700

答えて

1

ユーザーを特定のURLにリダイレクトしたいだけですか?

これは、場所apiを通じて行うことができます。

window.location = "http://stackoverflow.com" 

これはちょうど行うあなたのケースでそう

をstackoverflow.comするようにユーザーをリダイレクトします:window.location = url

とウィンドウオブジェクトは、あなただけのlocation = url

を行うことができますグローバルスコープであるために

編集:

また、ネストされたifステートメントの代わりにswitchステートメントを使用します。それはたくさん読みやすくなります。

var url = ""; 
switch(hostname){ 
    case "www.app1.com": 
    url = "url..."; break; 
    case "otherdomain": 
    url = "url..."; break; 
    default: 
    url = "url..."; //if none of the above ones 
} 
window.location = url; 
+0

レスポンスありがとうございます。 "ケース"のロジックと新しいページを読み込むソリューションをお試しください。いくつかの検索の後、私はwindow.location.assign(url)というメソッドも見つけました。私はそれを働かせている。 – user3504700

関連する問題