使用$ .getJSON检索CSV数据

时间:2013-02-12 20:55:07

标签: jquery ajax csv getjson

我正在尝试使用Yahoo的Finance API检索股票数据:

        $.ajax({
            dataType: "json",
            url: 'http://download.finance.yahoo.com/d/quotes.csv',
            data: 's=RHT+MSFT&f=sb2b3jk&callback=?',
            success: function (d) {
                console.log(JSON.stringify(d));
            },
            error: function (d, a, b) {
                console.log(JSON.stringify(d));
                console.log(JSON.stringify(a));
                console.log(JSON.stringify(b));
            },
            complete: function (d, a, b) {
                console.log(JSON.stringify(d));
                console.log(JSON.stringify(a));
                console.log(JSON.stringify(b));
            }
        });

通话有效,我可以在响应中看到csv文字(使用Chrome的开发者工具):

enter image description here

现在,我的问题是我无法访问响应中包含的文本。

正如您在原始脚本中看到的那样,我已尝试在"success""error""complete"回调中捕获回复,但响应文本未包含在任何回复中他们此外,仅引发"error""complete"回调。

我很感激有任何见解,谢谢!

PS。原因我正在使用CSV查询,而不是YQL查询,CSV查询更容易指定我需要的字段。我发现使用YQL查询要麻烦得多。

1 个答案:

答案 0 :(得分:4)

$.getJSON()方法接受text/json个内容类型,CSV不属于此类型。

  

这是一个简写的Ajax函数,相当于:

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});

complete会执行,因为无论请求是success还是error,都会执行。