簡體   English   中英

使用jQuery調用finance.yahoo api

[英]Calling finance.yahoo api using jquery

我想發送http請求以獲取具有以下網址的url的finance.yahoo股票數據: 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));
    }
});

我收到空白數據作為警報。 任何示例代碼或有用的鏈接將不勝感激。

我認為問題在於請求是跨域的。 這里還有另一個問題:

跨域獲取CSV文件

還有另一個答案: 回調函數中包裝的Yahoo JSONP Ajax請求

這里是一個工作示例: 使用underscore.js顯示來自Yahoo Finance的Ajax結果

這是一個工作的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",
        });
    }

我嘗試將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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM