SlideShare a Scribd company logo
1 of 15
Download to read offline
XML Http Request Level2
の噂を聞いたので調べてみた
           Pasta-K / Shuto Morii
             pasta0915@gmail.com

                  2010.04.29.Thu
                      Kanasan.JS
自己紹介
●   「Pasta-K」で検索!!
昨日@ビックカメラ
●   たまたま目についた本の目次の中に
    XMLHttpReques Level2というのがあったか
    ら調べてみました
●   一夜で調べたので、
 間違ってたら
 優しく教えてください
●   調べたことを偉そうに喋ります
    –   知ったかぶりです
XMLHttpRequest Level2
●   XMLHttpRequestのクロスドメイン対応版
●   今までのXMLHttpRequestと同じ感じで使える
●   W3C Working Draft 20 August 2009
●   最新のブラウザーだと大体動きます
ブラウザー対応状況
●   対応済み




●   条件付きで対応


●   非対応
Google Chrome, Firefox, Safari
●   それぞれ最新版は対応済み
●   XMLHttpRequest
Internet Explorer 8
●   IE6 ,IE7では非対応
●   XDomainRequest
    –   IE8独自
Opera
●   最新版(v10.52)でも非対応
クロスドメインの実装
●   サーバーサイドで.htaccessを用いて
Header append Access-Control-Allow-Origin:
を指定する。
    –   許可するorigin : URL
    –   ワイルドカード : *
●   クライアントサイドは特に必要はない
    –   いつも通りのXMLHttpRequestの中で上手くやっ
        てくれてるらしい
サンプル
if(window  .XDomainRequest){
   var xhr=newXDomainRequest();
}else{
   var xhr=newXMLHttpRequest();
}
try{
   xhr.onload=function(){
      alert(xhr.responseT  ext);};
   xhr.open("GET"  ,"http://hoge.c om/hoge.json");
   xhr.send(null);
}c h(e){alert(e.message);}
  atc
デモ
●   pastak.cosmio.netからlocalhostへ通信
    –   本当は逆でやりたかったのに500エラーが出て、上
        手くいかなかったです ><
jQueryでもやってみた
$.ajax({
  type: "GET",
  url: "http://hoge.com/hoge.json",
  suc ess: function(xml){
     c
      $("#t").text(xml);
  }
});
まとめ
●   Javascriptでクロスドメイン通信が出来る
●   クロスドメインでのアクセスはサーバサイド
    (API提供側)が指定出来る
●   将来的にはsend()でテキストデータだけじゃな
    くて、DOMとかバイナリデータも渡せるよう
    になるらしい
参考文献
●   XMLHttpRequest Level 2
    –   http://www.w3.org/TR/XMLHttpRequest2/
    –   http://d.hatena.ne.jp/os0x/20090610/1244618814
    –   http://subtech.g.hatena.ne.jp/mala/20100222/1266
●   Access-Control-Allow-Origin
    –   http://www.w3.org/TR/2008/WD-access-control-20
     #access-control-allow-origin
    –   https://developer.mozilla.org/en/HTTP_access_cont
おしまい♪

More Related Content

More from Shoot Morii

Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Shoot Morii
 
Don't you want to use Gyazo on Nintendo 3DS etc ?
Don't you want to use Gyazo on Nintendo 3DS etc ?Don't you want to use Gyazo on Nintendo 3DS etc ?
Don't you want to use Gyazo on Nintendo 3DS etc ?
Shoot Morii
 
はてなインターン自己紹介
はてなインターン自己紹介はてなインターン自己紹介
はてなインターン自己紹介
Shoot Morii
 
Matcha139 26th-lt
Matcha139 26th-ltMatcha139 26th-lt
Matcha139 26th-lt
Shoot Morii
 
Pasta kの取扱説明書
Pasta kの取扱説明書Pasta kの取扱説明書
Pasta kの取扱説明書
Shoot Morii
 
Osc神戸学生lt
Osc神戸学生ltOsc神戸学生lt
Osc神戸学生lt
Shoot Morii
 
セキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してからセキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してから
Shoot Morii
 
高校生がイベントを作るということ
高校生がイベントを作るということ高校生がイベントを作るということ
高校生がイベントを作るということ
Shoot Morii
 
高校生がイベントを作るということ
高校生がイベントを作るということ高校生がイベントを作るということ
高校生がイベントを作るということ
Shoot Morii
 

More from Shoot Morii (20)

2016年はFitbitで生体データを監視元年!
2016年はFitbitで生体データを監視元年!2016年はFitbitで生体データを監視元年!
2016年はFitbitで生体データを監視元年!
 
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
 
JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門
JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門
JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門
 
とにかくシュッと検索っぽいことをしたい!
とにかくシュッと検索っぽいことをしたい!とにかくシュッと検索っぽいことをしたい!
とにかくシュッと検索っぽいことをしたい!
 
Firefox Add-on SDK 入門
Firefox Add-on SDK 入門Firefox Add-on SDK 入門
Firefox Add-on SDK 入門
 
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyotoGo言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
 
Don't you want to use Gyazo on Nintendo 3DS etc ?
Don't you want to use Gyazo on Nintendo 3DS etc ?Don't you want to use Gyazo on Nintendo 3DS etc ?
Don't you want to use Gyazo on Nintendo 3DS etc ?
 
Pastapy
PastapyPastapy
Pastapy
 
はてなインターン自己紹介
はてなインターン自己紹介はてなインターン自己紹介
はてなインターン自己紹介
 
Matcha139 26th-lt
Matcha139 26th-ltMatcha139 26th-lt
Matcha139 26th-lt
 
Shibuya xss lt
Shibuya xss ltShibuya xss lt
Shibuya xss lt
 
情報と社会レポート1
情報と社会レポート1 情報と社会レポート1
情報と社会レポート1
 
Pasta kの取扱説明書
Pasta kの取扱説明書Pasta kの取扱説明書
Pasta kの取扱説明書
 
Ict challenge+r2011 final
Ict challenge+r2011 finalIct challenge+r2011 final
Ict challenge+r2011 final
 
Gitの紹介
Gitの紹介Gitの紹介
Gitの紹介
 
Osc神戸学生lt
Osc神戸学生ltOsc神戸学生lt
Osc神戸学生lt
 
セキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してからセキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してから
 
高校生がイベントを作るということ
高校生がイベントを作るということ高校生がイベントを作るということ
高校生がイベントを作るということ
 
高校生がイベントを作るということ
高校生がイベントを作るということ高校生がイベントを作るということ
高校生がイベントを作るということ
 
学生とItコミュニティの現在(いま)
学生とItコミュニティの現在(いま)学生とItコミュニティの現在(いま)
学生とItコミュニティの現在(いま)
 

XML Http Request Level2 の噂を聞いたので調べてみた

  • 1. XML Http Request Level2 の噂を聞いたので調べてみた Pasta-K / Shuto Morii pasta0915@gmail.com 2010.04.29.Thu Kanasan.JS
  • 2. 自己紹介 ● 「Pasta-K」で検索!!
  • 3. 昨日@ビックカメラ ● たまたま目についた本の目次の中に XMLHttpReques Level2というのがあったか ら調べてみました ● 一夜で調べたので、  間違ってたら  優しく教えてください ● 調べたことを偉そうに喋ります – 知ったかぶりです
  • 4. XMLHttpRequest Level2 ● XMLHttpRequestのクロスドメイン対応版 ● 今までのXMLHttpRequestと同じ感じで使える ● W3C Working Draft 20 August 2009 ● 最新のブラウザーだと大体動きます
  • 5. ブラウザー対応状況 ● 対応済み ● 条件付きで対応 ● 非対応
  • 6. Google Chrome, Firefox, Safari ● それぞれ最新版は対応済み ● XMLHttpRequest
  • 7. Internet Explorer 8 ● IE6 ,IE7では非対応 ● XDomainRequest – IE8独自
  • 8. Opera ● 最新版(v10.52)でも非対応
  • 9. クロスドメインの実装 ● サーバーサイドで.htaccessを用いて Header append Access-Control-Allow-Origin: を指定する。 – 許可するorigin : URL – ワイルドカード : * ● クライアントサイドは特に必要はない – いつも通りのXMLHttpRequestの中で上手くやっ てくれてるらしい
  • 10. サンプル if(window .XDomainRequest){ var xhr=newXDomainRequest(); }else{ var xhr=newXMLHttpRequest(); } try{ xhr.onload=function(){ alert(xhr.responseT ext);}; xhr.open("GET" ,"http://hoge.c om/hoge.json"); xhr.send(null); }c h(e){alert(e.message);} atc
  • 11. デモ ● pastak.cosmio.netからlocalhostへ通信 – 本当は逆でやりたかったのに500エラーが出て、上 手くいかなかったです ><
  • 12. jQueryでもやってみた $.ajax({ type: "GET", url: "http://hoge.com/hoge.json", suc ess: function(xml){ c $("#t").text(xml); } });
  • 13. まとめ ● Javascriptでクロスドメイン通信が出来る ● クロスドメインでのアクセスはサーバサイド (API提供側)が指定出来る ● 将来的にはsend()でテキストデータだけじゃな くて、DOMとかバイナリデータも渡せるよう になるらしい
  • 14. 参考文献 ● XMLHttpRequest Level 2 – http://www.w3.org/TR/XMLHttpRequest2/ – http://d.hatena.ne.jp/os0x/20090610/1244618814 – http://subtech.g.hatena.ne.jp/mala/20100222/1266 ● Access-Control-Allow-Origin – http://www.w3.org/TR/2008/WD-access-control-20  #access-control-allow-origin – https://developer.mozilla.org/en/HTTP_access_cont