0

IE でコールバック関数が呼び出されないのはなぜですか?

  1. Flickr への呼び出し:

    $.getJSON("http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos",
    {
        api_key: APIKey,    
        photoset_id: photoSetID,
        format: "json",
        per_page: 40,
        nojsoncallback: 1           
    }, displayImages);
    
    function displayImages(data) { alert('called'); }
    
  2. YouTube への呼び出し:

    $.getJSON('https://gdata.youtube.com/feeds/api/users/username/favorites?alt=json', function(data)
    {
        alert('called');
    })
    

これらのタイプの呼び出しはどちらも、IE を除く他のブラウザーで機能します。理由を教えてください。

4

1 に答える 1

1

jQuery は、IE<=9 以外のブラウザーではクロスドメイン ajax のみをサポートします。これらの API を IE で使用するには、利用可能な場合は JSONp を使用するか、IE で使用される XDomainRequest API のサポートを追加するjQuery プラグインを追加する必要があります。

可能であれば JSONp を使用してください。XDR にはかなりの制限があります。詳細については、 http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspxを参照してください。

于 2012-04-10T17:08:11.110 に答える