美元.getJson不能在IE中工作

$.getJson not working in IE

本文关键字:工作 IE getJson 不能 美元      更新时间:2023-09-26

好吧,由于某种原因,我的getJson不工作。我正在拉一些股票信息,它适用于除IE以外的所有主要浏览器。

我在这里创建了一个JSfiddle: http://jsfiddle.net/qZhSk/

如果有人能帮助我了解我做错了什么,这将是超级有帮助的。

谢谢!

编辑

我自己找到了解决办法。问题是在我的URL查询。如果有人有这个问题,这里是答案:

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

严格来说,我认为你在这一点上违反了同源策略。根据定义,您不能从您自己的....以外的域执行JSON get从雅虎获取数据肯定是不同于jsFiddle的服务器。这里报告了一个类似的问题。他们列出的CORS异常是IE到10版本,这将完美地解释这个问题。

这个问题可以通过在回调处理程序中使用"?"来解决。

由于这是一个老帖子,这个答案可能对其他寻求者有帮助。

getJson不能在IE中工作可能有两个原因。

1。通过添加

解析的json请求
 &callback=? or &callback=?

2。设置ajax catch

$.ajaxSetup({ cache: false });

如果你仍然有问题,这可能是因为跨平台API的使用。

我将使用众所周知的jquery和IE的跨域策略问题。

这篇文章很好地解释了解决方案:

http://cypressnorth.com/programming/cross-domain-ajax-request-with-json-response-for-iefirefoxchrome-safari-jquery/