2016-03-27 8 views
0

私は2つのプロジェクトを持っています。 1つはフロントエンドの角度コードです。 Web APIのもう一つ。フロントエンドのプロジェクトでは、他のプロジェクトでAPIを呼び出す必要があります。 URLをハードコーディングせずに別のプロジェクトでAPIを呼び出すにはどうすればよいですか?

私はこのような相対的な関与のURL/APIを示して見てきたWeb APIのチュートリアル

: $ http.get(「/ API /トリビア」)Javascriptを同じプロジェクト内であれば素晴らしい作品

Web APIとして使用していますが、私のソリューションではありません。

私のAPIのlocalhostポートにURLをハードコードできますが、正常に動作しますが、もちろんAzureにアプリケーションをデプロイすると機能しません。どのようにこれらのURLを処理する必要がありますか?

ありがとうございます。

+0

あなたは定数をあなたのモジュールに注入して、それをルートパスとして使うことができます。次に、api呼び出しを行うためのルートパスにapiパスを追加することができます。サーバー側の構成ファイルから動的に選択する必要がある定数の値。 – PSK

答えて

0

フルURLで$ httpを作成すると(http://..)、指定されたアドレスを直接参照します。しかし、相対パス(http://..なし)を指定すると、現在のサイト+指定された相対パスのURLが表示されます。 だからあなたのapiも同じサイトでホストされている場合あなたは$ http.get( "/ api/trivia")としてリファレンスを作成することができます。そうでない場合はAzureでサイトをホストする場所を知っていればあなたのスクリプトの中でハードコード。

+0

ですから、答えは "不可能"です。私はフロントエンドのjavascriptと2つの異なるプロジェクトで私のWeb APIを持っている場合、私はテストと展開時にハードコードされたURLを悩ます必要があります。ありがとう。 – user2084934

+0

そのない複数のプロジェクトを持っていることについて、同じIISサイトの\ポートでも、あなたのWeb APIをホストし、相対パス方式で動作することができます。 と、どこにハードコードされた値を持つ必要はありません。あなたのアプリケーションの設定ファイルを作成し、そこにグローバルに使用される変数を設定し、コントローラ\ serviceに依存関係を注入し、設定値を参照してください。 –

関連する問題