Получение и отображение финансовых данных YQL с помощью jquery и их отображение с помощью .html()

У меня проблема с функцией .html() и извлечением данных YQL. Данные извлекаются (данные можно увидеть при использовании консоли YQL), но они не показывают и не отображают никаких результатов.

Вот код:

HTML

<ul id="TECO-container">
    <li class="high">High: </li>
    <li class="low">Low: </li>
    <li class="close">Closing: </li>
    <li class="volume">Volume: </li>
</ul>

JS

// initialise plugins
jQuery(function () {
    tecoGetQuote('TECO');
});

//The above function is on a different .js than the below script.

var tecoGetQuote = function (symbol) {
    var yqlURL = "http://query.yahooapis.com/v1/public/yql?q=";
    var dataFormat = "&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
    var realtimeQ = yqlURL + "select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22" + symbol + "%22)%0A%09%09&" + dataFormat;
    $(function () {
        $.getJSON(realtimeQ, function (json) { //YQL Request
            //console.log(json.query.results.quote);
            //<li class="high">High: -</li><li class="low">Low: -</li><li class="close">Closing: -</li><li class="volume">Volume: -</li>
            $('#TECO-container .high').html('High: <span style="font-weight: bold; color:#FFBB00">' + json.query.results.quote.DaysHigh + '</span>');
            $('#TECO-container .low').html('Low: <span style="font-weight: bold; color:#FFBB00">' + json.query.results.quote.DaysLow + '</span>');
            $('#TECO-container .close').html('Closing: <span style="font-weight: bold; color:#FFBB00">' + json.query.results.quote.PreviousClose + '</span>');
            $('#TECO-container .volume').html('Volume: <span style="font-weight: bold; color:#FFBB00">' + addCommas(json.query.results.quote.Volume) + '</span>');
        });
    });
};

Вот JSFiddle: http://jsfiddle.net/Darthfuzzy/cPFKE/4/

Согласно JSFiddle, HTML/JS полностью действителен. Все признаки показывают, что он тоже должен работать. Результат должен просто отображать текущие рыночные данные, и я уже видел подобные функции, отображаемые на сайтах. Я просто не могу понять, где JS не работает.

Сценарий должен быть довольно простым: биржевой тикер — «TECO» (определяется как tecoGetQuote). Затем эта функция извлекает финансовые данные из YQL JSON, а затем распечатывает данные. Но по какой-то причине, независимо от того, как я меняю материал, он не отображается.

Может ли кто-нибудь помочь мне, указав, где проблема?


person Darthfuzzy    schedule 04.02.2013    source источник


Ответы (1)


В случае, если кому-то интересно, проблем с кодированием не было, скорее была проблема с callback=? не был добавлен в JS, что привело к проблеме разрешения доступа к источнику.

Ошибка XmlHttpRequest: нулевой источник не разрешен по Access-Control-Allow-Origin

Изменение строки формата данных var на:

var dataFormat ="&callback=&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";

Решил проблему.

person Darthfuzzy    schedule 05.02.2013