【问题标题】:Calling finance.yahoo api using jquery使用 jquery 调用 Finance.yahoo api
【发布时间】:2013-03-26 12:26:01
【问题描述】:

我想发送 http 请求以获取 Finance.yahoo 股票数据,其 URL 如下:http://finance.yahoo.com/d/quotes.csv?s=GAIL.NS+BPCL.NS+%5ENSEI&f=snl1hgp,它返回一个 csv 文件。我想读取响应数据并使用 Javascript 或 JQuery mobile 将其填充到列表视图中。我提到的链接都没有帮助我。

我尝试使用以下代码:

$.ajax({
    type: "GET",
    url: "http://finance.yahoo.com/d/quotes.csv",
    data: "s=GAIL.NS+BPCL.NS+%5ENSEI&f=snl1hgp",
    dataType: "text/csv",
    success: function(data) {
        alert(JSON.stringify('data is :' + data));
    }
});

我收到空白数据作为警报。 任何示例代码或有用的链接将不胜感激。

【问题讨论】:

    标签: javascript jquery cordova jquery-mobile rhomobile


    【解决方案1】:

    我认为问题在于请求是跨域的。这里还有一个问题:

    Cross-Domain get CSV file

    这里还有另一个答案:Yahoo JSONP Ajax Request Wrapped in callback function

    这里有一个工作示例:Displaying ajax results from yahoo finance using underscore.js

    这是一个有效的 jsfiddle,它向 d.yimg.com 发出 jsonp 请求以获取数据 http://jsfiddle.net/gp6zL/

        YAHOO.Finance.SymbolSuggest.ssCallback = function (data) {
            alert(JSON.stringify(data));
        };
        var query;
        query = 'Google';
        if (query.length > 0) {
    
            $.ajax({
                type: "GET",
                url: "http://d.yimg.com/autoc.finance.yahoo.com/autoc",
                data: {
                    query: query
                },
                dataType: "jsonp",
                jsonp: "callback",
                jsonpCallback: "YAHOO.Finance.SymbolSuggest.ssCallback",
            });
        }
    

    【讨论】:

    • 对不起。这是一个类型错误。我已经编辑了我的帖子。 alert(data) 也返回空白
    • 我提到了你的链接。但现在我得到 :null 作为输出
    【解决方案2】:

    我尝试将 jQuery 排除在外。只要您whitelist“finance.yahoo.com”,以下代码就可以工作。

    var request = new XMLHttpRequest();
    request.open("GET", "http://finance.yahoo.com/d/quotes.csv?s=GAIL.NS+BPCL.NS+%5ENSEI&f=snl1hgp", true);
    request.onreadystatechange = function() {//Call a function when the state changes.
        if (request.readyState == 4) {
            if (request.status == 200 || request.status == 0) {
                console.log(request.responseText);
            }
        }
    }
    request.send();
    

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 2018-05-02
      • 1970-01-01
      • 2013-08-31
      相关资源
      最近更新 更多