我可以使用带有 JSONP 的 Angular JS $resource 从 Google Finance 获取股票价格。这显示在这里:http: //jsfiddle.net/8zVxH/1/
我需要历史价格,谷歌不提供,但雅虎提供。我将上面的 jsfiddle 修改为:http: //jsfiddle.net/curt00/BqtzB/
这是代码:
angular.module('app', ['ngResource']);
function AppCtrl($scope, $resource) {
var yqlURL="http://query.yahooapis.com/v1/public/yql?q=";
var dataFormat="&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
var symbol = 'GOOG';
var startDate = '2012-12-05';
var endDate = '2012-12-06';
var historical_query = yqlURL+"select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20%3D%20%22"+ symbol +"%22%20and%20startDate%20%3D%20%22"+ startDate +"%22%20and%20endDate%20%3D%20%22"+ endDate +"%22"+ dataFormat;
$scope.yahooFinance = $resource(historical_query,
{callback:'JSON_CALLBACK'},
{get: {method:'JSONP', isArray: false}});
$scope.indexResult = $scope.yahooFinance.get();
}
它在浏览器控制台中生成错误消息:
GET http://query.yahooapis.com/v1/public/yql?q=select%20 *%20from%20yahoo.finance.historicaldata%20where%20symbol%20%3D%20%22GOOG%22%20and%20startDate% 20%3D%20%222012-12-05%22%20and%20endDate%20%3D%20%222012-12-06%22&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys?callback=angular。 callbacks._0 400(错误请求)
有人知道如何让它工作吗?
我知道 Jquery 的 getJSON 可以与这个 Yahoo 查询一起使用,但据说 AngularJS 的 $resource 更快更高效。