2011-12-09 81 views
7

好吧,出於某種原因,我的getJson無法正常工作。我拉動一些股票信息,它適用於除IE以外的所有主流瀏覽器。

我創建了一個的jsfiddle這裏:http://jsfiddle.net/qZhSk/

如果有人能幫助我理解我在做什麼錯了,它會是超級有幫助的。

謝謝!

編輯

我找到了自己的解決方案。問題出在我的網址查詢中。如果其他人有這個問題,這裏是答案:

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'); 
)}; 

回答

8

從技術上講,我認爲你違反了這一個相同的原產地政策。根據定義,你不能從除你自己以外的領域獲得JSON ......並且從雅虎獲取數據肯定是與jsFiddle不同的服務器。有一個similar issue reported here.他們列出的CORS例外是IE到版本10,這將完全解釋問題。

該問題可以通過使用「?」來解決。在你的回調處理程序中。 See this stack article欲瞭解更多信息。

+1

這正是我注意到了。基本上你需要在你的url字符串的末尾添加一個'&callback =?',你是黃金 –

+0

奇怪的是它在Firefox中起作用。 *編輯*啊 - CORS – Pointy

1

既然它是一箇舊帖子,這個答案可能對其他尋求者有幫助。

getJson爲什麼不能在IE中工作可能有兩個原因。它通過增加

&callback=? or &callback=? 

2.設置AJAX抓解決

1.Either JSONP請求。

$.ajaxSetup({ cache: false }); 

如果仍有問題,可能是因爲跨平臺API的使用。

+0

謝謝。就我而言,緩存是個問題。 –