2013-03-26 23 views
1

我想發送http請求來獲取具有以下url地址的finance.yahoo股票數據:http://finance.yahoo.com/d/quotes.csv?s=GAIL.NS+BPCL.NS+%5ENSEI&f=snl1hgp它返回一個csv文件。我想讀取響應數據並使用Javascript或JQuery mobile將其填充到列表視圖中。我提到的所有鏈接都沒有幫助我。使用jquery調用finance.yahoo api

我嘗試使用下面的代碼:

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

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

回答

2

我認爲問題是請求是跨域。這裏有關於這一個問題:

Cross-Domain get CSV file

和另一個答案在這裏:Yahoo JSONP Ajax Request Wrapped in callback function

和工作示例這裏:Displaying ajax results from yahoo finance using underscore.js

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

對不起。這是一個類型錯誤。我編輯了我的帖子。警報(數據)也返回空白 – Anil 2013-03-26 12:33:57

+0

我提到你的鏈接。但現在我得到:null作爲輸出 – Anil 2013-03-26 12:55:53

1

我試圖把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();