将JSONP响应字符串转换为节点中的JSON

时间:2016-04-08 22:28:33

标签: json node.js string jsonp

我在节点服务器上向返回JSONP的端点发出请求。我尝试删除回调参数,请求失败。正在寻找一种将此JSONP响应转换为普通JSON的方法。

{ data: 'callback1241232([201, {"name": "Thomas"}]);'}

预期

{ data: [201, {"name": "Thomas"}] }

axios是我用来发出这些请求的库,它不会为你转换。

2 个答案:

答案 0 :(得分:1)

以下是使用regex进行此操作的一种方法。

return axios.get('http://ex.com/jsonp-res?callback=callback')
.then(data => {
  data = JSON.parse(data.data.replace(/^callback\(|\)\;/g, ''))
  console.log(data)
})

答案 1 :(得分:-1)

这是使用可怕的eval进行此操作的一种方法。

return axios.get('http://ex.com/jsonp-res?callback=callback')
.then(data => {
  function callback(data) {
    console.log(data)
  }
  eval(data.data)
})