この記事では主に JSONP クロスドメインの実装方法を紹介し、JSONP クロスドメインの原理について説明します。 JSONP クロスドメイン GET リクエストを使用して Ajax クロスドメイン アクセスの問題を解決するだけでなく、それを必要とする友人は
を参照できます。数日前、職場で新しい要件がありました。 Web ページを終了して、バックグラウンド Web サービス メソッドを非同期的に呼び出して情報を返します。実装方法は多数ありますが、この例では jQuery Ajax を使用しています。完了後、サーバーにデプロイすると問題が発生しました。何が起こったのでしょうか。コードはあまり変更されていません。唯一の変更は、jQuery の ajax メソッドの URL アドレスです。これが問題ですか? 検査とデバッグの結果、問題の原因は同一生成元ポリシーであることがわかりました。JavaScript または jQuery は、Web フロントエンド開発でよく使用される動的スクリプト テクノロジであることがわかっています。 JavaScript には、「同一オリジン ポリシー」と呼ばれる非常に重要なセキュリティ制限があります。このポリシーは、JavaScript コードがアクセスできるページ コンテンツに重要な制限を設けます。つまり、JavaScript は、コンテンツを含むドキュメントまたはスクリプトと同じドメイン名のコンテンツにのみアクセスできます。異なるドメイン名にあるスクリプトは、サブドメイン内であっても相互にアクセスできません。同一生成元ポリシーについては、読者は Baidu で詳細な説明を見つけることができるため、ここでは詳しく説明しません。
ただし、クロスドメイン操作が避けられない場合があります。このとき、「同一生成元ポリシー」が制限になります。 JSONP クロスドメイン GET リクエストを使用するのが一般的なソリューションです。JSONP クロスドメインがどのように実装されるかを見て、JSONP クロスドメインの原理を調べてみましょう。ここで
JSONP について言及されているので、JSON との違いは何ですか? という質問があったので、Baidu Encyclopedia に次の説明があります:
JSON(JavaScript Object Notation)軽量のデータ交換フォーマットです。これは、JavaScript のサブセット (標準 ECMA-262 第 3 版 - 1999 年 12 月) に基づいています。 JSON は完全に言語に依存しないテキスト形式を使用しますが、C 言語ファミリー (C、C、C#、Java、JavaScript、Perl、Python などを含む) に似た規則も使用します。これらの特性により、JSON は理想的なデータ交換言語になります。人間にとっては読み書きが容易であり、機械にとっても解析と生成が容易です(ネットワーク伝送速度が速い)。