2016-07-29 12 views
1

Ich begann, mich in Fetch API und in meinem Sandbox kann ich es von https://api.github.com/users/octocat/gists auf ein Array von JSON-Objekte überFetch API-Statuscode zurückkehr 0, wollen XML-Antwort

function getGithubGists() { 
    fetch('https://api.github.com/users/octocat/gists') 
    .then(function(response) { 
     response.json().then(function(data) { 
     console.log('data', data) 
     }) 
    }) 
    .catch(function(error) { 
     console.log('Error', error) 
    }) 
} 

zu holen, wenn ich von einem Abruf Private API, die XML zurückgibt, welche Art von Änderungen müsste ich vornehmen? Ich fügte hinzu

headers: { 
    'Accept': 'text/xml' 
    } 

aber ich bekomme immer Statuscode 0 und Konsole druckt Daten undefined. Ist dies der Fall, weil Fetch annimmt, dass die Antwort JSON ist?

Auch auf der Registerkarte Netzwerk von Chrome DevTools kann ich die XML-Antwort sehen, die ich erwarte.

<?xml version="1.0"?> 
<psgxml> 
    <years> 
    <year>1974</year> 
    <year>1952</year> 
    <year>1928</year> 
    </years> 
</psgxml> 

Ich mag würde diese XML-Antwort über console.log

Dank drucken!

Antwort

0

Sie response.json() fordern, die die XML in ein Objekt zu analysieren ausfällt, dass

function getGithubGists() { 
    fetch('https://privateapi.com/xml') 
    .then(function(response) { 
     response.text().then(function(data) { 
     console.log('data', data) 
     }) 
    }) 
    .catch(function(error) { 
     console.log('Error', error) 
    }) 
} 
+0

Danke! Ich erkannte, was falsch war, ich brauche ein anderes. Dann, um die Daten zu bekommen. Zuerst. Dann ist das Versprechen. – Nikkawat

0

LÖSEN response.text() ändern! : D

function getXML() { 
    fetch('https://privateapi.com/xml')  
    .then(response => response.text()) // the promise 
    .then(data => console.log('Data', data)) // data 
    .catch(error => console.log('Error', error)) 
} 

1.Figured heraus, dass ich einige Einstellungen im Server aktivieren, seit ich den Fehler "API laden kann nicht Nein" Access-Control-Allow-Origin-Header Fetch" erhielt ...

2.Need zwei .dann, da zuerst das Versprechen und dann zweitens kann man verwendet werden, um die Antwort auf Text zu konvertieren.