2016-07-29 3 views
1

Я начал смотреть в Fetch API и в моей песочнице я могу получить его, чтобы извлечь из https://api.github.com/users/octocat/gists возвращает массив объектов JSON с помощьюFetch API возвращает код состояния 0, хотите ответ XML

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) 
    }) 
} 

Если я извлечением из частный API, который возвращает XML, какие изменения мне нужно будет сделать? Я добавил

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

но я продолжаю получать код состояния 0, а консоль печатает данные неопределенные. Это потому, что выборка предполагает, что ответом является JSON?

Кроме того, на вкладке «Сеть» Chrome DevTools я вижу ответ XML, который я ожидаю.

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

Я хотел бы напечатать этот ответ XML с помощью console.log

Спасибо!

ответ

0

Вы звоните response.json(), который не в состоянии разобрать XML в объект, изменить что response.text()

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

Спасибо! Я понял, что случилось, мне нужно другое, чтобы получить данные. Сначала это обещание. – Nikkawat

0

Решено! : 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, что я должен был включить некоторые настройки в сервере, так как я получал ошибку «Fetch API не может загрузить заголовок Нет„Access-Control-Allow-Origin“» ...

2.Нажмите два. Затем, поскольку первый обрабатывает обещание, а затем второй, можно использовать для преобразования ответа на текст.

 Смежные вопросы

  • Нет связанных вопросов^_^