2013-03-26 91 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();