Ich habe eine React / Redux-Anwendung und versuche, eine einfache GET-Anfrage an einen Server zu senden:
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); });
Das Problem ist, dass der Antworttext in der .then()
Funktion leer ist und ich nicht sicher bin, warum. Ich habe Beispiele online überprüft und es sieht so aus, als ob mein Code funktionieren sollte, sodass mir hier offensichtlich etwas fehlt. Die Sache ist, wenn ich die Registerkarte "Netzwerk" in den Entwicklertools von Chrome überprüfe, wird die Anfrage gestellt und ich erhalte die Daten, nach denen ich suche.
Kann jemand ein Licht auf dieses werfen?
BEARBEITEN:
Ich habe versucht, die Antwort zu konvertieren.
mit .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); });
und mit .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
In den Chrome Dev Tools suchen:
fetch
an die Arbeit machen und begann mit der Redux-API-Middleware . Wenn Sie die Anfrage stellen, müssen Sie die Antwort auf ähnliche Weise in json konvertieren, wie die Leute hier vorgeschlagen haben: