Sayangnya, saya tidak mengelak ralat ini. Saya harap ini boleh membantu orang lain mengelakkan mereka apabila cuba mengemas kini halaman web tanpa memuat turun versi baharu sepenuhnya. Kod yang saya dapati nampaknya berfungsi:
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 } }
menunggu berfungsi dalam fungsi tak segerak untuk memastikan data telah tiba sebelum cuba mengaksesnya. Jika anda perlu memanggil fungsi async daripada kod biasa sintaksnya ialah .maka:
fetchDbSingle(url, str).then(data => { console.log("Received data:", data); // Use the data here }).catch(error => { console.error("Error fetching data:", error); });
Jika anda cuba mengakses data tanpa menggunakan sintaks khas ini, data tidak akan ditentukan kerana anda mengaksesnya sebelum ia tiba.
Jika anda cuba mengakses data di luar tempat yang ditanda, data itu tidak akan ditentukan.
Dalam program saya fetch() memanggil skrip PHP yang membaca pangkalan data.
Berikut adalah beberapa amaran yang mungkin tidak masuk akal kepada yang berpengalaman, tetapi saya harap saya tahu lebih awal:
Sekiranya sesiapa berminat untuk mengetahui mengapa saya menyebut amaran di atas, saya boleh menulis esei tentang kesilapan yang saya lakukan & bagaimana saya mengambil masa seminggu untuk membetulkannya dan anda boleh ketawa dan berasa lebih hebat.
Atas ialah kandungan terperinci ralat fetch() & XMLHttp untuk dielakkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!