IEとjson

1420828264_IE-destroy

YoutubeのAPIを使ってサイト背景に動画を流したい。

そのために指定したユーザの動画をjsonで読込みたい。

やりたいことは、ただコレだけなのです。あっという間に出来てしまって、喜んでいたのです。

IEで動作確認をするまでは。

IEがまたワタシを困らせる・・・

IEではフツーに書いてもjsonで読み込めないようです。

 

みんなIEに困り果ててた

弱りながら「IE json」というキーワードをGoogle検索画面に打ち込むと、みーーーーんな困っていました。

そして、「これで解決しました!」という方法が確立していないのです。

もうみんな、色々色々やってみて、「あ、できた」みたいな。

ワタシも、色々色々やってみました。

  • contentType: “application/json; charset=utf-8″ をつける。
  • json2.jsを読み込んでみる
  • jQueryのバージョンを変えてみる
  • JSON.parse    JSON.stringify などを使ってみる
  • $.ajax({
    type:’GET’,
    url : ‘http://gdata.youtube.com/feeds/api/videos?&alt=json’,
    },(以下略) と書いてたのを、

    $.ajax({ type:’GET’,
    url : ‘http://gdata.youtube.com/feeds/api/videos?’,
    dataType:’json’,
    data: {
    alt: ‘json’
    },(以下略) にしてみる

などなど。先人たちの辿った道を真似してみたけど、読み込めない・・・

しかし、解決しました。

たった1フレーズ挿入しただけで。

 

callback=? で動いた!

指定するurlに、「callback=?」 を加えたらIEでもjsonを読み込み、動画が再生されるようになりました。

ちなみに先人たちのほとんどが「これを付け加えたら動いた!」と書いていた「contentType: “application/json; charset=utf-8″」ですが、ワタシは書かなくても動きました。でも明示したいので書いていますが・・

何を試してもダメだ・・という方へ。あきらめないで!

 

Youtubeからjson形式でデータを取得する(IEもOK版)
[code lang=”js”]$.ajax({
  type:’GET’,
  url : ‘http://gdata.youtube.com/feeds/api/videos?callback=?’,
  dataType:’json’,
  data: {
    author: ‘user名’,
    alt: ‘json’
},
contentType: "application/json; charset=utf-8",
error:function(){
    エラーだったときの処理
  },
success: function(json) {
  json.feed.entry.forEach(function(items, i) {
    ここに取得したデータの処理を記述
});
   }
});
[/code]