我有一個反應/終極版的應用程序,我試圖做一個簡單的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的開發工具中查看網絡選項卡,則發出請求,並收到我正在查找的數據。
任何人都可以照亮這一個嗎?
編輯:
我試圖轉換效應初探。
使用.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瀏覽器開發工具:
我無法使'fetch'工作,所以我開始使用[redux-api-middleware](https://github.com/agraboso/redux-api-middleware/)。當你提出請求時,你必須以類似的方式將響應轉換成json: –