如何正确解析Meteor中的JSONP回调函数?

时间:2015-10-03 10:28:39

标签: api meteor jsonp

有人知道如何在Meteor服务器方法中解析JSONP回调吗?

我做

let response = HTTP.call('GET', AVIASALES_API_ENDPOINTS.getLocationFromIP, {
  params: {
    locale: 'en',
    callback: 'useriata',
    ip: clientIP
  }
});

在response.content中我有

useriata({"iata":"MSQ","name":"Minsk","country_name":"Belarus"})

如何正确解析它?

1 个答案:

答案 0 :(得分:0)

知道你真正想要完成的事情会有所帮助吗?但是这里有一个工作示例,流星实际上并没有对请求做任何不寻常的事情。

Meteor.startup(function () {
    var result = HTTP.call("GET", "https://api.github.com/legacy/repos/search/meteor", {
        params: {},
        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(result.data); // it's js object you can do result.data.repositories[0].name
    console.log(JSON.stringify(result.data)); // json string
    console.log(JSON.parse(JSON.stringify(result.data))) // if for some reason you need to parse it this way will work, but seems unnecessary 
});

更新:您从响应中获取的字符串不是有效的JSON,因此您无法解析它使用了一些正则表达式来删除无效字符串这是工作示例:{ {3}}