2016-04-08 4 views
-1

Ich mache eine Anforderung auf einem Knotenserver an einen Endpunkt, der JSONP zurückgibt. Ich habe versucht, den Rückrufparameter zu entfernen, und die Anforderung schlägt fehl. Suchen nach einer Möglichkeit, diese JSONP-Antwort in normales JSON zu konvertieren.Konvertieren Sie die JSONP-Antwortzeichenfolge in JSON im Knoten

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

Erwartet

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

axios ist die Bibliothek, die ich diese Anfragen zu machen und bin mit ihm dies nicht für Sie konvertieren.

+0

geben Sie einen Rückruf zu verwenden, dann entfernen Sie es aus der Zeichenfolge. –

+0

Alles, was ich habe, ist dieses Objekt, das Sie oben sehen, welcher Rückruf ist dort zu verwenden? – ThomasReggi

+0

* "Ich mache eine Anforderung auf einem Knotenserver an einen Endpunkt, der JSONP zurückgibt. Ich habe versucht, den Rückrufparameter zu entfernen, und die Anforderung schlägt fehl." * Das ist der Rückruf, auf den ich mich beziehe. –

Antwort

-1

Hier ist eine Möglichkeit, es mit der gefürchteten eval zu tun.

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

Hier ist eine Möglichkeit, es mit regex zu tun.

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