2012-04-25 15 views
8

次のコードを使用してJSONからデータを取得しています。

$(document).ready(function() 
{ 
    $.getJSON("http://www.xyz.com/data.php?id=113&out=json", function(data) { 

     $.each(data.issue.page, function(i,item) { 
      imagesJSON[i] = item["@attributes"]; 
     }); 

     alert(imagesJSON.length); 
    }); 
}); 

Mozilla、Chrome、その他のブラウザでは動作しますが、IEでは動作しません(バージョンに関係なく)。

+4

JSONの結果が表示されたら... – gdoron

+2

jqueryのバージョンとスクリプトのドメイン上のこのリンクは何ですか? –

+3

JSコンソールのエラー? ... – binarious

答えて

14

$.getJSONは、cache results in IEとなる傾向があります。代わりに$.ajaxを使用してください。

関連の呼び出しは、あなたのケースでは、このようなものでなければなりません:

// Not really sure if you've forgot to var 
var imagesJSON = []; 

$.ajax({ 
    url: "www.example.com/data.php?id=113&out=json", 
    cache: false, 
    dataType: "json", 
    success: function(data) { 
    $.each(data.issue.page, function(i,item) { 
     imagesJSON[i] = item["@attributes"]; 
    }); 

    alert(imagesJSON.length); 
    }, 
    error: function (request, status, error) { alert(status + ", " + error); } 
}); 

あなたはcache: falseを持っていることを確認してください。


UPDATE: OPが実際に使用して、要求URLを持つホストでの設定の問題のように見える

。 IE Webブラウザで直接URLにアクセスすると、ホストからのアボートが発生します。ホストのウェブマスターにメールするなど、ホストに問題を報告する以上のことはできません。

+0

私はこれを使用します。 "http://www.xyz.com/data.php?id=113&out=json"、 \t \tキャッシュ::偽、 \t \tデータ型:「何の問題も '$アヤックス({ \t \t URLがありますJSON」、 \t \t成功:機能(データ){ \t \t \t $ .each(data.issue.page、機能(I、アイテム){ imagesJSON [I] =項目[ "@" は属性]; \t \t \tアラート(imagesJSON。長さ)。 }); \t \tエラー:機能(要求、ステータス、エラー){ アラート(ステータス+ "、" +エラー); \t \t } –

+0

@ketan:正しく入力してもよろしいですか?キーエラーの値(そこにある関数)は '$ .ajax'関数のパラメータ配列の中になければなりません。 – Spoike

+4

上記のものはIEのエラー**エラー、転送なし** –

2

私はページ上の同じエラーを持っていた、と私はこれらの行を追加:

<!--[if lte IE 9]> 
<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.0/jquery.xdomainrequest.min.js'></script> 
<![endif]--> 

をし、それがfinaly私の作品;)IE9

のためのより多くのエラーがこの投稿はjQuery Call to WebService returns "No Transport" error

私を助けていません