2017-07-01 10 views
1

私はSpring BootとjQueryを使ってJEE Webアプリケーションを開発しています。これはNodeJS/Angular2アプリケーションを初めて開発するときです。 JEEアプリケーションでは、クライアント側とサーバー側の両方のコンポーネントが単一のjar/warファイルにコンパイルされます。しかし、私の新しい開発環境では、クライアントとサーバー側を2つの別々のプロジェクト(別のポートを聴いて)として開発し、Angular2サービス層からバックエンドURLを呼び出しています。私はCross Origin Resource Sharing(CORS)の問題を抱えています。Angular2/NodeJSプロジェクト構造とCORSの問題

私の質問は、AngularとNodeJSを2つの別個のアプリケーションとして開発し、NodeJSのcorsモジュールを使用してCORSの問題を解決することですか?

私は以下のようにノード側からのいくつかの解決策を見つけた:

var cors = require('cors') 
var app = express() 
app.use(cors()) 

をので、あなたは私のために、このアーキテクチャ

  • 推奨解像度に

    1. 右プロジェクトの構造を明確に助けることができるならば、私は感謝CORSの問題。

    よろしくお願いいたします。

  • 答えて

    0

    はい、フロントエンドとバックエンドに2つの別々のプロジェクトを使用するのはかなり一般的です。しかし、これはそれを行うための最善の方法であるとは限りません。常にあなたの特定の要件とプロジェクトのサイズに依存します。小規模なプロジェクトの場合は、両方のプロジェクトを同じリポジトリに入れる方が簡単ですが、これは個人的な好みです。

    CORSに関しては、実際に何をしようとしているかによって異なります。 2つの別々のリポジトリを持っているからといって、別のドメイン/ポートにそれらを提供する必要はありません。たとえば、urlに応じて、nginxを使用してAPIまたはフロントエンドにリクエストをルーティングすることができます。それらが同じドメイン/ポートでホストされていない場合は、CORSを無効にする必要があります。ルールを可能な限り厳格にし、特定のドメインのみを許可してください。

    +0

    ツアーの応答に感謝します。それは多くを明確にします。 – jine

    +0

    ようこそ。これがあなたの質問に答えるなら、それを受け入れることができますか?ありがとう! –