可悲的是,我沒有避免這些錯誤。我希望這可以幫助其他人在嘗試更新網頁而不完全下載新版本時避免它們。我最終得到的程式碼似乎有效:
async function fetchDbSingle(url, str) { const dataToSend = str; console.log('fetchDbSingle: ' + str); try { const response = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: dataToSend }); if (!response.ok) { throw new Error('Network response was not ok'); } const data = await response.json(); return data; } catch (error) { console.error('Error fetching data:', error); throw error; // Re-throw the error to be handled by the caller } }
await 在非同步函數內工作,以確保資料在嘗試存取之前已到達。如果您需要從普通程式碼呼叫非同步函數,語法為 .then:
fetchDbSingle(url, str).then(data => { console.log("Received data:", data); // Use the data here }).catch(error => { console.error("Error fetching data:", error); });
如果您嘗試在不使用此特殊語法的情況下存取數據,則數據將是未定義的,因為您是在數據到達之前訪問它。
如果您嘗試存取標記位置之外的數據,它將是未定義的。
在我的程式中,fetch() 正在呼叫讀取資料庫的 PHP 腳本。
這裡有一些警告,對於有經驗的人來說可能毫無意義,但我希望我早點知道:
如果有人有興趣知道我為什麼提到上述警告,我可以寫一篇文章,介紹我所犯的錯誤以及我如何花了一周的時間來糾正這些錯誤,然後你就可以咯咯笑並感到優越。
以上是要避免的 fetch() 和 XMLHttp 錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!