我正在尝试使用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"
和"complete"
回调。
我很感激有任何见解,谢谢!
PS。原因我正在使用CSV查询,而不是YQL查询,CSV查询更容易指定我需要的字段。我发现使用YQL查询要麻烦得多。
答案 0 :(得分:4)
$.getJSON()
方法接受text/json
个内容类型,CSV
不属于此类型。
这是一个简写的Ajax函数,相当于:
$.ajax({ dataType: "json", url: url, data: data, success: success });
complete
会执行,因为无论请求是success
还是error
,都会执行。