2016-04-14 6 views
4

私は、angle2アプリケーションをホストするWebプロジェクトとWeb APIプロジェクトの両方を備えたASP.NETソリューションを用意しています。angle2のhttpをアプリケーションホストポート以外のポートと併用するにはどうすればよいですか?

両方のプロジェクトがスタートアッププロジェクトとしてセットアップされ、異なるポート(Webプロジェクトの場合は45365、Web apiプロジェクトの場合は20234)で実行されます。

Let'sは私が私のangular2ウェブアプリでこれにアクセスするにはどうすればよいhttp://localhost:20234/api/values

経由で現在アクセス可能である/api/valuesを公開ウェブAPIコントローラを持っていると言いますか?私は

this.http.get("api/values") 

をしようとした場合、それが望まれていないhttp://localhost:45365/api/valuesにアクセスしようとします。しかし、localhost以外のドメインのパブリックサーバーに公開されている場合でも、サービスを行うためにドメインを含むURL全体を指定することなく、http://localhost:20234/api/valuesを呼び出す必要があります。

http.get()には、ポート番号として20234を使用するように指定するにはどうすればよいですか?

+0

フルアドレスを使用してください。 – MSwehli

+0

は基本的にthis.http.get( "http:// localhost:45365/api/values") – MSwehli

+0

へのgetを変更しましたが、私のサービスに 'localhost'を固定しないで解決策を明示的に求めました –

答えて

5
constructor(private location:Location, private locationStrategy:LocationStrategy) {} 

someMethod() { 
    var base = this.locationStrategy.getBaseHref(); 
    // replace port 

    this.location.prepareExternalUrl(base + 'xxx'); 
} 

あなたはそうあなたがそれを繰り返す必要はありませんHttpに転送するサービスでこれを実装することができます。

(テストされていません)

+1

完璧な、それは私が探していたものです。ありがとう。 –

関連する問題