レガシー システムに対して行う REST API 呼び出しからデータをレンダリングするシングル ページ アプリケーション (AngularJS を使用) を構築しています。このレガシー システムは非常に大きく、Java で記述されており、展開に数分かかるため、レガシー システムとは完全に分離したシングル ページ アプリケーションを開発する方が生産的であると判断しました。
問題は、レガシー システムの REST API と通信しようとしたときに発生しました。どちらのアプリも同じホストにローカルにデプロイされていましたが、別のアプリ サーバーにデプロイされていたため、通信時には別のポートを使用する必要がありました。しかし、SPA は別のポートで REST API と通信していたため、ブラウザーはクロス サイト スクリプティング攻撃から保護するための私の要求を阻止しました。
http リクエストのプロキシを容易にするこのビルド ツール名がlineman (grunt を利用) であることがわかりました。これにより、クロス サイト スクリプティングの制限を回避できましたが、これは開発モードでのみ適していました。
概念実証が機能するようになったので、プロキシを使用せずにこれらのアプリを一緒にデプロイする方法を知りたいと思います。そもそもAngularはあなたがバックエンドを持っているとは想定しておらず、フロントエンドでAngularを使用するほとんどの人はバックエンドでJavaを使用していないため、これを行う方法についてアドバイスを見つけるのは難しいです(それが重要な場合でも) .
アプリのコンテキスト パスは、prod モードと dev モードのどちらでデプロイされているかによって変わるなどの問題に直面しているため、両方のモードで機能するリンク切れを回避する賢い方法を考える必要があります。ここで途中で間違ったステップを踏んだかどうか/どこで間違ったのだろうか. バックエンドとは別のサーバーで SPA を開発するのは避けるべきですか?