Cross-fetch - GET возвращает ответ без тела - PullRequest
0 голосов
/ 29 августа 2018

Я вызываю метод GET, используя cross-fetch. Проблема, с которой я сталкиваюсь, состоит в том, что я получаю ответ с кодом 200, но тело пусто. Когда я иду к консоли браузера и открываю вкладку Network, я вижу результат:

enter image description here

Как видно на рисунке, в ответе есть данные. Код, который отвечает за использование API, выглядит следующим образом:

fetch(API_URL + 'load_packages', {
        method: 'GET',
        headers: {
            Accept: 'application/json',
        }
    }).then((response) => {
        console.log('LOAD PACKAGES RESPONSE: ' + JSON.stringify(response))
        proceedLoadResponse(response)
    })

Звонок работает, потому что я получаю ответ с кодом состояния 200, но тела нет. Что я делаю не так?

UPDATE

Использование response.json() возвратов {}

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Согласно документации по извлечению, вы должны скрыть ответ в форме json, используя response.json(), чтобы получить фактическое тело.

fetch(API_URL + 'load_packages', {
        method: 'GET',
        headers: {
            Accept: 'application/json',
        }
    }).then(function(response) {
        return response.json();
    })
    .then((response) => {
        console.log('LOAD PACKAGES RESPONSE: ' + JSON.stringify(response))
        proceedLoadResponse(response)
    })
0 голосов
/ 29 августа 2018

response - это объект Response, который является просто контейнерным объектом, представляющим ответ. Предполагая, что cross-fetch - это просто независимая от платформы реализация нативного fetch, для извлечения JSON из ответа необходимо использовать метод response.json().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...