3

我正在尝试使用 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 的开发人员工具):

在此处输入图像描述

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

正如您在原始脚本中看到的,我尝试在 、 和 回调中捕获响应"success""error""complete"响应文本不包含在其中任何一个中。此外,仅引发"error"and"complete"回调。

我会很感激对此的任何见解,在此先感谢!

附言。我使用 CSV 查询而不是 YQL 查询的原因是 CSV 查询更容易指定我需要的字段。我发现 YQL 查询使用起来更加麻烦。

4

1 回答 1

4

$.getJSON()方法接受text/json内容类型并且CSV不是这种类型。

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

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

complete执行,因为无论请求是否导致 asuccess或,它都会执行error

于 2013-02-12T20:57:35.937 回答