2016-09-28 3 views
0

私はPHPを使ってAngular2フロントエンドとREST WebAPIバックエンドを使ってプロジェクトを書いています。CORSのないAngular2テストデータ

npm'sライトサーバ(別名npm start)を使用してフロントエンドを実行/デバッグしています。これまではin-memory-web-apiを使ってデータを提供してきましたが、バックエンドから実際のデータを消費する準備は整いました。

フロントエンドとバックエンドの両方が同じApacheサーバーから提供されますが、私はnpmを使用してAngular2と別のApacheサーバーを実行してAPIを実行しています。

私の問題は、npmlocalhost:3000で実行され、Apacheがlocalhost:80で実行されていることです。これはクロスオリジンのセキュリティ問題を引き起こし、Angular2アプリにデータを取得させる唯一の方法は、REST APIでCORSを有効にすることです。バックエンドでCORSを有効にしたくないのは、それが何らかの形でプロダクションになるかもしれないと心配しているからです。

これまでのところ、npm'sサーバは、自分の.tsファイルを自動的にコンパイルし、ファイルの変更を検出したときにブラウザをリフレッシュするので本当に便利です。この素晴らしい機能を維持する方法がない限り、Angular2の開発をApacheに移行する必要はありません。

CORSを有効にしなくても、これらの2つのことを分けておく方法はありますか?

もしそうでなければ、npmの素晴らしい機能を維持しながら2つをマージできる方法はありますか?

答えて

1

開発アプリケーションサーバーを開発RESTサーバーへのプロキシ要求に構成します。その後、同じ起源要求を行います。

また、(またはバージョンコントロールシステムに相当するもの)にCORSヘッダーを有効にするために.htaccessを使用してください。

また、RESTサーバーに構成システムがある場合。これを使用して開発中のCORSをオンにします(そして、設定ファイルがバージョンコントロールから保護されていることを確認してください)。