调用使用jquery finance.yahoo API(Calling finance.yahoo

2019-07-23 11:44发布

我想送http请求与像网址获取finance.yahoo库存数据: http://finance.yahoo.com/d/quotes.csv?s=GAIL.NS+BPCL.NS+%5ENSEI&f=snl1hgp它返回一个CSV文件。 我想读的响应数据,并使用Javascript或jQuery Mobile的一个ListView填充它。 我提到的链接没有帮助我。

我试着用下面的代码:

$.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));
    }
});

我得到的空白数据的警报。 任何样本代码的或有用的链接,将不胜感激。

Answer 1:

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

跨域得到CSV文件

这里另一个答案: 雅虎JSONP Ajax请求的回调函数,裹

在这里工作的例子: 从雅虎财经使用underscore.js显示AJAX结果

这里是一个工作的jsfiddle这使得JSONP请求d.yimg.com获取数据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",
        });
    }


Answer 2:

我试图采取的jQuery的方程。 只要你将下面的代码工作列入白名单 “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();


文章来源: Calling finance.yahoo api using jquery