最近、開発プロセス中に、ajax を使用して画像を非同期に取得しました。開発中はこの機能に問題はありませんが、再デプロイ後に問題が発生します。これは Ajax のクロスドメインの問題です。
ajax 自体はクロスドメインをサポートしていません。これは JavaScript の 同一生成元ポリシー によるものです。しかし、ajax のクロスドメインの問題は他の方法で解決できます。
1 jqueryを使ってajaxを書くので、当初はjsonpを使って解決する予定でしたが、クライアントは以下のような書き方になります。 リーリー
サーバーサイドの書き込み方法リーリー
この方法は実際には非常に簡単で、以前に書いたものからほとんど変更がありません。2 このプロジェクトでは多くのページを開発しているため、変更にはより多くの場所が関係します。最後に、nginx の設定を直接変更することで実装されました。私が普段リバース プロキシについて理解しているのは、キャッシュ、セキュリティ、ロード バランシングであるため、以下のディレクション プロキシを確認してみました
リバース プロキシは、その名前が示すように、プロキシのリバース機能です。私たちは、直接アクセスできない一部のネットワークにアクセスしたり、本当の身元を隠したりするためにプロキシを使用します。リバース プロキシを使用すると、外部ユーザーは内部サーバーを公開することなく、ファイアウォールの内側で内部サービスにアクセスできます。
リバース プロキシを使用する主な利点は次のとおりです:
1 権限の設定、フィルタリングルールなどを含むリクエストの統合制御
2 内部サービスの実際のアドレスを非表示にし、リバース プロキシ サーバーのアドレスのみを公開します。
3 負荷分散を実現するために、複数のサーバーを内部で使用してサーバー クラスターを形成し、1 つのアドレスを外部アクセスに使用できます。
4 Ajax クロスドメイン問題を解決します。5 リアルサーバーのバッファとして、瞬間的な負荷が大きい問題を解決します。
プロジェクトが完了した後、インターネットで ajax のクロスドメインの問題を調べたところ、
HTML でクロスドメイン リソースのタグ参照をリクエストすることでクロスドメインの目的が達成できることもわかりました。実際には、jsonp が基本的に採用されています。この方法。
HTML にはクロスドメイン リソースをリクエストできるタグがたくさんあります
スクリプトは間違いなく最適です。各スクリプト リソースをリクエストすると、ブラウザはスクリプト ファイルで定義された関数を解析して実行するか、すぐに実行する必要がある JavaScript コードをサーバー経由で返し、それを解析して実行します。これにより、ドメインリクエストの目的を超えて達成されます。スクリプト タグを使用してクロスドメイン リクエストを実装します。サーバー リソースのリクエストには get メソッドのみを使用できます。また、渡されるパラメータの長さもアドレス バーの長さによって制限されます。
AJAX クロスドメイン アクセス ソリューション
Ajax クロスドメイン ソリューションの場合
参考1
主页面代码:
getDocument2
getElement2