Submit Search
Upload
いまさら聞けないJSONPのまとめ
•
5 likes
•
9,736 views
Yujiro Araki
Follow
JSONPについてまとめたものです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 19
Download now
Download to read offline
Recommended
Open Policy Agent (OPA) 入門
Open Policy Agent (OPA) 入門
Motonori Shindo
PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行
Yasuo Ohgaki
Fluentd with MySQL
Fluentd with MySQL
I Goo Lee
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007
Hideki Saito
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf
Seung kyoo Park
Recommended
Open Policy Agent (OPA) 入門
Open Policy Agent (OPA) 入門
Motonori Shindo
PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行
Yasuo Ohgaki
Fluentd with MySQL
Fluentd with MySQL
I Goo Lee
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007
Hideki Saito
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf
Seung kyoo Park
MySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーション
Shinya Sugiyama
JSON:APIについてざっくり入門
JSON:APIについてざっくり入門
iPride Co., Ltd.
基礎からのEBS
基礎からのEBS
宗 大栗
TerraformでECS+ECRする話
TerraformでECS+ECRする話
Satoshi Hirayama
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
Seung-June Lee
Session管理とRailsのcookie store
Session管理とRailsのcookie store
Kamimura Taichi
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
Rest ful api設計入門
Rest ful api設計入門
Monstar Lab Inc.
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所
Ryo Sasaki
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Esun Kim
クロスドメインアクセスを理解してWeb APIを楽しく使おう
クロスドメインアクセスを理解してWeb APIを楽しく使おう
kitfactory
Why HATEOAS
Why HATEOAS
Lee Wayne
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
Seongyun Byeon
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
Brian Hong
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
nasa9084
フロントからバックエンドまで - WebAssemblyで広がる可能性
フロントからバックエンドまで - WebAssemblyで広がる可能性
IIJ
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
Young-Ho Cho
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
infinite_loop
Jggug20120901pojojson
Jggug20120901pojojson
Yasuharu Hayami
WordPressAPI
WordPressAPI
Yuki Okamoto
More Related Content
What's hot
MySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーション
Shinya Sugiyama
JSON:APIについてざっくり入門
JSON:APIについてざっくり入門
iPride Co., Ltd.
基礎からのEBS
基礎からのEBS
宗 大栗
TerraformでECS+ECRする話
TerraformでECS+ECRする話
Satoshi Hirayama
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
Seung-June Lee
Session管理とRailsのcookie store
Session管理とRailsのcookie store
Kamimura Taichi
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
Rest ful api設計入門
Rest ful api設計入門
Monstar Lab Inc.
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所
Ryo Sasaki
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Esun Kim
クロスドメインアクセスを理解してWeb APIを楽しく使おう
クロスドメインアクセスを理解してWeb APIを楽しく使おう
kitfactory
Why HATEOAS
Why HATEOAS
Lee Wayne
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
Seongyun Byeon
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
Brian Hong
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
nasa9084
フロントからバックエンドまで - WebAssemblyで広がる可能性
フロントからバックエンドまで - WebAssemblyで広がる可能性
IIJ
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
Young-Ho Cho
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
infinite_loop
What's hot
(20)
MySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーション
JSON:APIについてざっくり入門
JSON:APIについてざっくり入門
基礎からのEBS
基礎からのEBS
TerraformでECS+ECRする話
TerraformでECS+ECRする話
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
Session管理とRailsのcookie store
Session管理とRailsのcookie store
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
Rest ful api設計入門
Rest ful api設計入門
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
クロスドメインアクセスを理解してWeb APIを楽しく使おう
クロスドメインアクセスを理解してWeb APIを楽しく使おう
Why HATEOAS
Why HATEOAS
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
フロントからバックエンドまで - WebAssemblyで広がる可能性
フロントからバックエンドまで - WebAssemblyで広がる可能性
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Similar to いまさら聞けないJSONPのまとめ
Jggug20120901pojojson
Jggug20120901pojojson
Yasuharu Hayami
WordPressAPI
WordPressAPI
Yuki Okamoto
JSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めよう
VOYAGE GROUP
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
takezoe
RESTful Web API Design
RESTful Web API Design
Akinari Tsugo
Inside mobage platform
Inside mobage platform
Toru Yamaguchi
Java EE8 Report
Java EE8 Report
Norito Agetsuma
RFC7951(JSON Encoding of Data Modeled with YANG)の勉強資料
RFC7951(JSON Encoding of Data Modeled with YANG)の勉強資料
Tetsuya Hasegawa
LODを使ったサイトとプラグインを作ってみた話[WordBenchOsaka]
LODを使ったサイトとプラグインを作ってみた話[WordBenchOsaka]
Hidetaka Okamoto
Tokyowebmining5 yokkuns
Tokyowebmining5 yokkuns
Yohei Sato
Web技術勉強会 第26回
Web技術勉強会 第26回
龍一 田中
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
XPagesDay 2015 RESTの総復習
XPagesDay 2015 RESTの総復習
Masahiko Miyo
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
オラクルエンジニア通信
Visualize terms network in Lucene index
Visualize terms network in Lucene index
Koji Sekiguchi
PHP on Cloud
PHP on Cloud
Akio Katayama
codeless/serverless develop
codeless/serverless develop
Tomoyuki Obi
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
Kohei Asai
Pjax1
Pjax1
Kindai University
Similar to いまさら聞けないJSONPのまとめ
(19)
Jggug20120901pojojson
Jggug20120901pojojson
WordPressAPI
WordPressAPI
JSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めよう
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
RESTful Web API Design
RESTful Web API Design
Inside mobage platform
Inside mobage platform
Java EE8 Report
Java EE8 Report
RFC7951(JSON Encoding of Data Modeled with YANG)の勉強資料
RFC7951(JSON Encoding of Data Modeled with YANG)の勉強資料
LODを使ったサイトとプラグインを作ってみた話[WordBenchOsaka]
LODを使ったサイトとプラグインを作ってみた話[WordBenchOsaka]
Tokyowebmining5 yokkuns
Tokyowebmining5 yokkuns
Web技術勉強会 第26回
Web技術勉強会 第26回
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
XPagesDay 2015 RESTの総復習
XPagesDay 2015 RESTの総復習
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
Visualize terms network in Lucene index
Visualize terms network in Lucene index
PHP on Cloud
PHP on Cloud
codeless/serverless develop
codeless/serverless develop
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
Pjax1
Pjax1
More from Yujiro Araki
Movable Typeで承認ワークフロー
Movable Typeで承認ワークフロー
Yujiro Araki
MovableTypeテンプレートタグのまとめ
MovableTypeテンプレートタグのまとめ
Yujiro Araki
Movable Type カスタムフィールドのまとめ
Movable Type カスタムフィールドのまとめ
Yujiro Araki
Websocketのお絵かきチャットサンプル
Websocketのお絵かきチャットサンプル
Yujiro Araki
MTDDC 2012
MTDDC 2012
Yujiro Araki
MTDDC Meetup Tokyo 2011:もっとディープにMovable Type
MTDDC Meetup Tokyo 2011:もっとディープにMovable Type
Yujiro Araki
MT DDC Tokyo(テーマ編):テーマを使った手間いらずなサイト制作 - バージョン管理
MT DDC Tokyo(テーマ編):テーマを使った手間いらずなサイト制作 - バージョン管理
Yujiro Araki
Theme Framework in Depth - MT DDC Tokyo
Theme Framework in Depth - MT DDC Tokyo
Yujiro Araki
MT DDC Tokyo(テーマ編):テーマを使った手間いらずなサイト制作
MT DDC Tokyo(テーマ編):テーマを使った手間いらずなサイト制作
Yujiro Araki
More from Yujiro Araki
(9)
Movable Typeで承認ワークフロー
Movable Typeで承認ワークフロー
MovableTypeテンプレートタグのまとめ
MovableTypeテンプレートタグのまとめ
Movable Type カスタムフィールドのまとめ
Movable Type カスタムフィールドのまとめ
Websocketのお絵かきチャットサンプル
Websocketのお絵かきチャットサンプル
MTDDC 2012
MTDDC 2012
MTDDC Meetup Tokyo 2011:もっとディープにMovable Type
MTDDC Meetup Tokyo 2011:もっとディープにMovable Type
MT DDC Tokyo(テーマ編):テーマを使った手間いらずなサイト制作 - バージョン管理
MT DDC Tokyo(テーマ編):テーマを使った手間いらずなサイト制作 - バージョン管理
Theme Framework in Depth - MT DDC Tokyo
Theme Framework in Depth - MT DDC Tokyo
MT DDC Tokyo(テーマ編):テーマを使った手間いらずなサイト制作
MT DDC Tokyo(テーマ編):テーマを使った手間いらずなサイト制作
Recently uploaded
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(10)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
いまさら聞けないJSONPのまとめ
1.
いまさら聞けないJSONPのまとめ 2015.5.25 Yujiro Araki
2.
Ajaxの制約 クロスドメイン通信を行うことができない www.foo1.com www.bar1.com ①アクセス $.ajax({ url: 'http://www.bar1.com/‘ }); ②ページ表示 ③Ajax実行②の内容
3.
・JSON with padding(付け足しJSON)の略 ・JSON(JavaScript
Object Notation)を拡張した プログラミングモデル ・SOP※による他サーバへの問い合わせ制限を回避 JSONPとは 引用:Web/DBプログラミング徹底解説 http://keicode.com/script/jsonp-same-origin-policy.php ※同一生成元ポリシー(Same Origin Policy)
4.
理由:src属性に設定するURLはSOP適用外=異なるドメイン設定可能 もう少し分かりやすく言うと script要素を利用してデータを取得
5.
src属性に設定するURLはSOP適用外 script要素を利用する理由
6.
script要素のsrc属性がSOP適用外であることを示す例 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"> </script> Google CDN 参考:https://developers.google.com/speed/libraries/
7.
{ name: 'foo',
price: 3000 } JSONデータの例
8.
showPrice({ name: 'foo',
price: 3000 }); JSONPの例
9.
<script> function showPrice(data) { alert("Name:
" + data.name + ", Price: " + data.price); } showPrice({ name: 'foo', price: 3000 }); </script> index.html JSONPの利用(1/5) JSONPによるクロスドメインの通信: 第1回 JSONPとjQueryを組み合わせ、強力なマッシュアップを迅速に作成する http://www.ibm.com/developerworks/jp/web/library/wa-aj-jsonp1/
10.
<script> function showPrice(data) { alert("Name:
" + data.name + ", Price: " + data.price); } showPrice({ name: 'foo', price: 3000 }); </script> この部分を他サーバ(user-domain)の外部ファイル読み込みにする index.html JSONPの利用(2/5)
11.
<script> function showPrice(data) { alert("Name:
" + data.name + ", Price: " + data.price); } </script> <script src="http://user-domain/show.js"></script> showPrice({ name: 'foo', price: 3000 }); show.js index.html JSONPの利用(3/5)
12.
<script> function showPrice(data) { alert("Name:
" + data.name + ", Price: " + data.price); } </script> <script src="http://user-domain/show.js"></script> showPrice({ name: 'foo', price: 3000 }); show.js index.html この部分を動的生成にする JSONPの利用(4/5:動的生成) 動的生成にする理由:イベント発生契機に通信を行いたい場合
13.
<script> function showPrice(data) { alert("Name:
" + data.name + ", Price: " + data.price); } function show() { var script = document.createElement('script'); script.src = 'http://user-domain/show.js'; (document.getElementsByTagName('head'))[0].appendChild(script); } </script> <a href="#" onclick="show() return false;">click</a> index.html show.js showPrice ({ name: 'foo', price: 3000 }); JSONPの利用(5/5:動的生成)
14.
<script> function callback(data) { alert("Name:
" + data.name + ", Price: " + data.price); } function show() { var script = document.createElement('script'); script.src = 'http://user-domain/show.php?jsonp=callback; (document.getElementsByTagName('head'))[0].appendChild(script); } </script> <a href="#" onclick="show() return false;">click</a> <?php echo $_GET['jsonp'] . "({ name: 'foo', price: 3000 });"; ?> show.php(他サーバ) index.html クエリーパラメータ「jsonp」の値をコールバック関数名として設定 関数のパラメータにJSONを設定 JSONPの実用的な実装例
15.
<script> $.ajax({ dataType: 'jsonp', url: "http://user-domain/hoge.php", success:
function(data){ alert("Name: " + data.name + ", Price: " + data.price); }, }); </script> jQueryによるAjax+JSONPのサポート:$ajax index.html
16.
<script> $.ajax({ dataType: 'jsonp', crossDomain: true, jsonp
: 'jsoncallback', url: "http://user-domain/hoge.php", success: function(data){ alert("Name: " + data.name + ", Price: " + data.price); }, }); </script> jQueryによるAjax+JSONPのサポート:$ajax index.html
17.
<script> $.getJSON("http://user-domain/hoge.php?&callback=?", function(data) { $('div').html(data.title +
data.description); }); </script> クエリーパラメータ「callback(名称は何でもよい)」の値に 「?」を設定することでJSONPリクエストとして扱われる。 「?」の部分はjQueryで自動生成 実際のHTTPリクエスト: http://user-domain/hoge.php?callback = jQuery17208957796988929256_1334645135858&_=1334645136039 <?php echo $_GET['jsonp'] . '(' . "{ title: 'foo', description: 'bar' }" . ');'; ?> hoge.php 実行される 関数 最後の“_=[TIMESTAMP]“はキャッシュを無効にするためのもの http://api.jquery.com/jQuery.ajax/ $.ajaxでのみ有効な模様 jQueryによるAjax+JSONPのサポート:$getJSON
18.
$.getJSON("http://user-domain/hoge.php?jsoncallback=?", { aaa : bbb, }, function(data)
{ alert("first success"); $('div').html(data.title + data.description); }) .done(function() { alert("second success"); }) .fail(function() { alert("error"); }) .always(function() { alert("complete"); }); $.getJSON
19.
Google Code: jquery-jsonp https://github.com/jaubourg/jquery-jsonp エラーハンドリング、キャッシング、タイムアウトなど、デフォルトでは対応でき ない機能が使えるようになるみたい jQueryでJSONP http://blog.mudaimemo.com/2008/09/jqueryjsonp.html 静的なJSONデータをパラメータに持つJavaScript関数を呼び出す方法
Download now