Я могу получить цены на акции из Google Finance, используя ресурс Angular JS $ с JSONP. Это показано здесь: http://jsfiddle.net/8zVxH/1/
Мне нужны исторические цены, которые Google не предоставляет, но предоставляет Yahoo. Я изменил приведенный выше 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();
}
В консоли браузера выдает сообщение об ошибке:
ПОЛУЧИТЬ http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.исторические данные%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 (неверный запрос)
Кто-нибудь знает, как заставить это работать?
Я знаю, что getJSON Jquery можно использовать с этим запросом Yahoo, но предположительно $resource AngularJS быстрее и эффективнее.