ホームページ >ウェブフロントエンド >jsチュートリアル >JSON と JSONP: 主な違いは何ですか? それぞれをいつ使用する必要がありますか?
JSON と JSONP: 違いを理解する
JSON と JSONP (JavaScript Object Notation with Padding) は、平文形式である JSON の基礎を共有しています。データ オブジェクトを文字列として表すために使用されます。ただし、形式、ファイル タイプ、実際の使用方法は大きく異なります。
形式の違い
JSON は、任意のプログラミング言語で解析できるスタンドアロン データ形式です。 。これは、中括弧で囲まれたキーと値のペアを含む特定の構文に従います。
対照的に、JSONP は真の JSON 形式ではありません。代わりに、JavaScript 関数呼び出し内で JSON オブジェクトをラップする必要があります。これを行う最も一般的な方法は、func({"name":"value"}) のように、JSON データを任意の関数名で囲み、その後に括弧を付けることです。
File Type Difference
JSON ファイルには「.json」というファイル拡張子があり、テキスト ファイルとみなされます。 JSON データは、JSON ファイル、JavaScript オブジェクト変数、または文字列に保存できます。一方、
JSONP はファイル タイプではありません。これは JavaScript コードであるため、個別のファイル拡張子はありません。通常、JSONP データは、「.js」拡張子を持つ JavaScript ファイル内に埋め込まれます。
実際の使用方法の違い
JSON は、サーバーとサーバーの間でデータを送信するために一般的に使用されます。人間が読むことができ、機械も解析できるため、クライアントとなります。たとえば、AJAX リクエストに応答してデータを送信するのに適しています。
JSONP は、クロスサイト AJAX リクエストで特定の目的を果たします。クライアントが異なるドメインのサーバーにデータを要求すると、Web ブラウザーの同一生成元ポリシーにより、スクリプトはデータにアクセスできなくなります。 JSONP は、JavaScript 関数呼び出し内に JSON データを埋め込むことで、この制限を克服します。これにより、クライアントは JavaScript オブジェクトであるかのようにデータを受信できるようになります。
JSONP は、クライアントがサーバー側に頼らずにサードパーティのドメインからデータをフェッチする単一のリクエストを行う必要がある場合に特に有利です。プロキシまたは CORS (Cross-Origin Resource Sharing)。ただし、JSONP データがロードされる前に誰でも変更できる可能性があるため、セキュリティに影響します。
以上がJSON と JSONP: 主な違いは何ですか? それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。