好的,出于某种原因,我的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');
)};
答案 0 :(得分:8)
从技术上讲,我认为你违反了同源政策。根据定义,你不能从你自己的域以外的域中获取JSON。从Yahoo获取数据肯定是与jsFiddle不同的服务器。有一个similar issue reported here.他们列出的CORS例外是IE到版本10,它可以很好地解释这个问题。
使用“?”可以解决问题在你的回调处理程序中。 See this stack article了解更多信息。
答案 1 :(得分:1)
由于它的旧帖子,这个答案可能对其他求职者有所帮助。
为什么getJson无法在IE中工作,可能有两个原因。
1. Jsonp请求通过添加
解决了哪些问题 &callback=? or &callback=?
2.设置ajax catch。
$.ajaxSetup({ cache: false });
如果您仍有问题,可能是因为跨平台API使用。
答案 2 :(得分:0)