JSONPとは? わかりやすく解説

556の専門辞書や国語辞典百科事典から一度に検索! Weblio 辞書 ヘルプ
Weblio 辞書 > コンピュータ > IT用語辞典 > JSONPの意味・解説 

JSONP

フルスペル:JavaScript Object Notation with Padding
別名:JSON with Padding

JSONPとは、JavaScriptから派生した軽量なデータ記述形式であるJSONJavaScript Object Notation)を用いた関数呼び出し仕組みのことである。

JSONPでは、HTML/XHTMLにおいて、scriptタグsrc属性呼び出した相手先のURL指定しJSON形式返され処理結果関数評価することで、最終的な処理結果を得るという仕組みになっているscriptタグsrc属性には、呼び出し側とは異なドメインURL指定することができるため、異なドメインJSONによるリクエスト投げ、他のドメイン提供されている機能直接呼び出すことが可能となる。JSON使用するためデータ交換軽量であることもあり、JSONPはマッシュアップを行うために適した技法一つとして注目されている

なお、JSONPのようにHTTP通じてリクエスト投げデータ受け取るための仕組みとしては、XHRXMLHttpRequest)などがある。ただしXHR関数呼び出しを行うことができるのは同一ドメイン内における関数のみであるという点でJSONPとは異なる。


JSONP

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/05/14 15:17 UTC 版)

JSONP
拡張子.jsonp
MIMEタイプapplication/json-p
種別Data interchange
派生元JSONJavaScript
ウェブサイトwww.json-p.org
(リンク切れ,アーカイブweb archive)

JSONP (JSON with padding) とは、scriptタグを使用してクロスドメインな(異なるドメインに存在する)データを取得する仕組みのことである。HTMLのscriptタグ、JavaScript(関数)、JSONを組み合わせて実現される。

クロスドメインな通信を実現する方法としては、後にオリジン間リソース共有英語版 (CORS)も開発され、JSON-Pに代わる選択肢となっている。

仕組

ウェブブラウザなどに実装されている「同一生成元ポリシー」という制約により、ウェブページは通常、自分を生成したドメイン以外のドメインのサーバと通信することはできない。 しかし、HTMLのscriptタグのsrc属性には別ドメインのURLを指定して通信することができるという点を利用することによって別ドメインのサーバからデータを取得することが可能になる。

JSONPでは、通常、上記src属性のレスポンスの内容はJavaScript関数呼び出しの形式となるため、src属性に指定するURLにその関数の名前をクエリ文字列の形式で付加する。一般的な方法では、この時に指定する関数名はウェブページ側ですでに定義されているコールバック用の関数の名前になる。

関数名を渡すリクエストパラメータの名前はサーバとクライアント間で事前に取り決めておく必要がある。
例えば(callbackというパラメータ名でparseResponseという関数名を渡す場合)

    <script type='text/javascript' 
     src='http://another.domain.example.com/getjson?callback=parseResponse'>

通常は、上記リクエストレスポンスとして、JSON形式のデータ引数とする関数呼び出し文が返される。 この関数の呼び出し文がブラウザにより解釈・実行されることで、データの受信完了の検知とコールバック処理が可能になっている。 上記の例では、parseResponseという関数の呼び出し文が返される。

    parseResponse({"Name":"Smith","Rank":7})

注意点

JSONPでは、クロスサイトリクエストフォージェリ: cross-site request forgery、CSRF)に対する脆弱性に注意が必要である。 このscriptタグを使う方法では同一生成元ポリシーが適用されず、またサーバのエンドポイントは外部に公開されているため、悪意のあるサイトがJSONデータを取得するといったことが可能であることから、機密情報や個人情報などのデータを取り扱うには不向きである。 また、scriptタグを埋め込む側においても、リモートサイトから任意の内容のデータをページに差し込むことが可能であるため、そのリモートサイトが悪意のあるサイトである場合やJavaScriptインジェクションに対する脆弱性がある場合は、その脆弱性を突かれることで、アカウント情報を盗まれたり、元のサイトも影響を受けたりする可能性がある。

データを提供するサーバ側では、リクエストの正当性を検証するのが適切である。 但し、Cookieだけを使用した検証は、CSRFに対して脆弱であるため、不十分である。

Dojo ToolkitGoogle Web ToolkitなどのライブラリでJSONPがサポートされている。

関連項目

外部リンク



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「JSONP」の関連用語

JSONPのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



JSONPのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【JSONP】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのJSONP (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS