http://chucklets.no/getOnlineTime
當我單擊它時,我可以看到 JSON,它看起來很好。但是當使用 fetch 它時
API Node.js 代碼:
app.get('/getOnlineTime', (req, res) => {
console.log("Reading rows from the Table...");
const arr = [];
connection.execSql(new Request('SELECT * FROM OnlineTime', function (err, rowCount, rows) {
if (err) {
console.error(err);
}
})
.on('doneInProc', function (rowCount, more, rows) {
var row = {};
for (let i = 0; i < rows.length; i ) {
var row = {};
for (let j = 0; j < rows[i].length; j ) {
row[rows[i][j].metadata.colName] = rows[i][j].value;
}
arr.push(row);
}
res.json(arr)
})
);
});
反應代碼:
const [playerD, setPlayerData] = useState([]);
useEffect(() => {
const fetchData = async () => {
const response = await fetch('http://chucklets.no/getOnlineTime', {method:'GET'})
if (!response.ok) {
throw new Error(response.status);
}
const data = await response.text()
setPlayerData(data)
}
fetchData()
}, [])
在https://nba-players.herokuapp.com/players-stats上使用 fetch 時,我得到了一個不錯的 JSON。任何投入將不勝感激。
uj5u.com熱心網友回復:
因為當您在瀏覽器中打開鏈接時它可以作業并且每次 JS 提取都不起作用,所以我懷疑可能存在一些 CORS 問題并且 Node.js 甚至沒有回應。這就是為什么我懷疑 react 中 playerD 變數的默認值永遠不會更新并保持為空陣列的原因。
嘗試使用 cors 中間件: Express CORS 中間件
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/475981.html
下一篇:Visual Studio使用docker開發卡 vs2017u5 exists, deleting (vsdbg的問題)
