ホームページ >バックエンド開発 >PHPチュートリアル >API サーバーとフロントエンド サーバー間のクロスドメインの問題を解決するにはどうすればよいですか?
ブラウザは、フロントエンド サーバーに HTML、CSS などの静的リソースをリクエストします。
その後、ブラウザは API サーバーに ajax リクエストを送信し、クロスドメインの問題を引き起こします。
私の現在の計画は、フロントエンドとバックエンドのリソースの両方を同じドメイン名の下に置くことですが、それはあまり合理的とは思えません。
2 つ目は、リバース プロキシを使用することですが、試したことがなく、適切かどうかわかりません。
返信内容:
その後、ブラウザは API サーバーに ajax リクエストを送信し、クロスドメインの問題を引き起こします。
2 つ目は、リバース プロキシを使用することですが、試したことがなく、適切かどうかわかりません。
バックエンドを通じてこの問題を解決するにはどうすればよいですか?
基本的に、クロスドメインには次のソリューションがあります
API サーバーはクロスドメイン ヘッダーを設定するだけで済みます。Spring で記述する場合は、次のようなコードを使用できます。 リーリー
たとえば、P と API という 2 つのプロジェクトがあります
その後、呼び出し方法は同様です: P フロントエンド - 》P バックエンド - 》API
対象のバックエンドは Nodejs です。Express の場合は、次のコードを使用してミドルウェアにパッケージ化することをお勧めします。 リーリー
最良の答えはすでにあります。Cookie の取得をリクエストする場合は withCredentials: true を使用することを忘れないでください
jsonpは参考として使用できます
Access-Control-Allow-Origin: フロントエンド ドメイン名
個人的には、リバースプロキシを使用するのが最も信頼できると思います
リバース プロキシには nginx を使用する方が便利かもしれませんが、クロスドメイン応答ヘッダーの設定は IE と完全には互換性がありません
リバースプロキシは比較的シンプルです
node によって記述されたバックエンド コードが Express/koa を使用している場合、cors() ミドルウェアをバックエンド コードに直接導入できます
リバースプロキシとしてnginxを使用するとより便利です
API サーバーに js ファイルを配置し、フロントエンドでそれを参照するだけで、外部統計を呼び出すロジックと同様に、クロスドメインの問題は発生しません。