У меня есть приложение response/redux, и я пытаюсь выполнить простой запрос GET для сервера:
fetch('http://example.com/api/node', {
mode: "no-cors",
method: "GET",
headers: {
"Accept": "application/json"
}
}).then((response) => {
console.log(response.body); // null
return dispatch({
type: "GET_CALL",
response: response
});
})
.catch(error => { console.log('request failed', error); });
Проблема в том, что тело ответа пусто в функции .then()
, и я не уверен, почему. Я проверил примеры онлайн, и похоже, что мой код должен работать, поэтому я, очевидно, что-то пропустил.
Дело в том, что если я проверю вкладку сети в инструментах Chrome dev, запрос будет сделан, и я получу данные, которые я ищу.
Может ли кто-нибудь светить на этом свете?
EDIT:
Я попытался преобразовать ответ.
с помощью .text()
:
fetch('http://example.com/api/node', {
mode: "no-cors",
method: "GET",
headers: {
"Accept": "application/json"
}
})
.then(response => response.text())
.then((response) => {
console.log(response); // returns empty string
return dispatch({
type: "GET_CALL",
response: response
});
})
.catch(error => { console.log('request failed', error); });
и .json()
:
fetch('http://example.com/api/node', {
mode: "no-cors",
method: "GET",
headers: {
"Accept": "application/json"
}
})
.then(response => response.json())
.then((response) => {
console.log(response.body);
return dispatch({
type: "GET_CALL",
response: response.body
});
})
.catch(error => { console.log('request failed', error); }); // Syntax error: unexpected end of input
Поиск в инструментах Chrome: