Javascript 从meteor中的JSONP中提取数据

Javascript 从meteor中的JSONP中提取数据,javascript,meteor,highcharts,Javascript,Meteor,Highcharts,因此,我正在使用一家名为MarkitOnDemand的公司的API来获取股票数据 服务器端: Meteor.methods({ 'getStockData' : function(tickerSymbol) { check(tickerSymbol, String); this.unblock(); url = "http://dev.markitondemand.com/MODApis/Api/v2/InteractiveChart/jsonp?parameters

因此,我正在使用一家名为MarkitOnDemand的公司的API来获取股票数据

服务器端:

Meteor.methods({
  'getStockData' : function(tickerSymbol) {
    check(tickerSymbol, String);
    this.unblock();
    url = "http://dev.markitondemand.com/MODApis/Api/v2/InteractiveChart/jsonp?parameters=%7B%22Normalized%22%3Afalse%2C%22NumberOfDays%22%3A365%2C%22DataPeriod%22%3A%22Day%22%2C%22Elements%22%3A%5B%7B%22Symbol%22%3A%22" + tickerSymbol + "%22%2C%22Type%22%3A%22price%22%2C%22Params%22%3A%5B%22c%22%5D%7D%5D%7D"
    var response = HTTP.call( 'GET', url, {
      params: {
        "callback" : "lookup"
      },
      headers: {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"
      }
    });
    // console.log(response);
    if(response.statusCode == 200) {
      console.log('Success');
      return(response.content)
    }
  }
});
客户端:

Template.LookupChartTemplate.rendered = function () {
  stockData = Meteor.call("getStockData", stockname.Symbol, function(error, results){
    console.log(results);
  });
}
客户端控制台.log(结果)的结果如下:

lookup({"Labels":null,"Positions":[0,0.004,0.008,0.012,0.016,0.02,0.024,0.028,0.032,0.036,0.04,0.043,0.047,0.051,0.055,0.059,0.063,0.067,0.071,0.075,0.079,0.083,0.087,0.091,0.099,0.103,0.107,0.111,0.115,0.119,0.123,0.126,0.13,0.134,0.138,0.142,0.146,0.15,0.154,0.158,0.162,0.166,0.17,0.174,0.178,0.182,0.186,0.19,0.194,0.198,0.202,0.206,0.209,0.213,0.217,0.221,0.225,0.229,0.233,0.241,0.245,0.249,0.253,0.257,0.261,0.265,0.269,0.273,0.277,0.281,0.285,0.289,0.292,0.296,0.3,0.304,0.308,0.312,0.316,0.32,0.324,0.328,......
现在的问题是:

如何从回调结果中获取数据

预期最终结果:


我想从jsonp响应中获取所有键/值对,并将它们分配给各种变量(以便我可以将它们传递到highcharts以制作图表)。

现在,您可以看到,您使用名为
查找(…数据…
的函数获得了
jsonp
,您必须调用/创建此函数来提取数据:

var lbls, pos;

function lookup(data){
    lbls = data.Labels;
    pos = data.Positions;
}

现在,在highcharts中,您可以使用
lbls
pos
varialbles。

现在,您可以看到,您得到了名为
lookup(…data…
)的函数的
JSONP
,您必须调用/创建此函数来提取数据:

var lbls, pos;

function lookup(data){
    lbls = data.Labels;
    pos = data.Positions;
}

现在,在highcharts中,您可以使用
lbls
pos
varialbles。

JSONP是一种在浏览器中围绕同一来源策略工作的肮脏黑客。您没有使用浏览器,因此不需要它

将URL从
/jsonp
更改为
/json
,API将返回纯json


你可以用JSON解析它。解析JSONP是一种在浏览器中围绕同一源代码策略的肮脏的黑客行为。您没有使用浏览器,因此不需要它

将URL从
/jsonp
更改为
/json
,API将返回纯json


你可以用JSON解析它。解析

谢谢你的回复。那么,假设我将从服务器获得的整个jsonp对象(在本例中为命名响应)返回给客户端,那么如何在客户端访问名为lookup的函数呢?感谢您的回复。那么,假设我将从服务器获得的整个jsonp对象(在本例中为命名响应)返回给客户端,那么如何在客户端访问名为lookup的函数呢?谢谢。我决定暂时采用这个想法,同时我对回调有了更好的理解。谢谢,很好。我没想到不使用浏览器会出现这种情况。谢谢。我决定暂时采用这个想法,同时我对回调有了更好的理解。谢谢,很好。我没想到不使用浏览器会发生这样的事情。