2011-12-09 31 views
7

OK, z jakiegoś powodu mój getJson nie działa. Przesyłam kilka informacji o stanie i działa we wszystkich głównych przeglądarkach z wyjątkiem IE.

Stworzyłem JSfiddle tutaj: http://jsfiddle.net/qZhSk/

Jeśli ktoś może mi pomóc zrozumieć, co robię źle to będzie super pomocny.

dziękuję!

EDIT

znalazłem rozwiązanie siebie. Problem był w moim zapytaniu do adresu URL. Jeśli ktoś ma ten problem tutaj jest odpowiedź:

var url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20WHERE%20symbol%3D'NPO'&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"; 

     $.getJSON(url + "&format=json&callback=?", function(data) { 
     var items = []; 

     $.each(data.query.results.quote, function(key, val) { 

      items.push('<li id="' + key + '">' + val + '</li>'); 
     }); 

     $('<ul/>', { 
      'class': 'my-new-list', 
      html: items.join('') 
     }).appendTo('body'); 
)}; 

Odpowiedz

8

Technicznie rzecz biorąc, myślę, że naruszono zasady tego samego źródła na ten jeden. Z definicji nie można uzyskać dostępu do JSON z domeny innej niż własna .... a pobieranie danych z Yahoo jest z pewnością innym serwerem niż jsFiddle. Istnieje similar issue reported here. Wyjątki CORS, które wymieniają, to IE do wersji 10, które doskonale wyjaśniałyby problem.

Problem można rozwiązać, używając znaku "?" w twoim programie obsługi wywołania zwrotnego. See this stack article, aby uzyskać więcej informacji.

+1

To jest dokładnie to, co zauważyłem. Zasadniczo musisz dodać '& callback =?' Na końcu twojego url string i jesteś złoty –

+0

Dziwne jest to, że działało w Firefoksie. * edit * ah - CORS – Pointy

1

Od czasu postu ta odpowiedź może być pomocna dla innych osób poszukujących.

Może istnieć dwa powody, dla których getJson nie działa w IE.

1.Either jsonp wnioski, które rozwiązane przez dodanie

&callback=? or &callback=? 

2.Set ajax haczyk.

$.ajaxSetup({ cache: false }); 

Jeśli nadal masz problem, może to być spowodowane używaniem wielu platform API.

+0

Dzięki. W moim przypadku problem polegał na pamięci podręcznej. –