ralat fetch() & XMLHttp untuk dielakkan

Susan Sarandon
Lepaskan: 2024-11-26 13:27:11
asal
232 orang telah melayarinya

fetch() & XMLHttp errors to avoid

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
  }
}
Salin selepas log masuk

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);
}); 

Salin selepas log masuk

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:

  • Perhatikan bahawa PHP akan menghantar data melalui gema dan dalam kes ini gema tidak akan muncul pada skrin.
  • Pastikan fail PHP anda hanya mengandungi kod PHP; tiada html. Jika ia mengandungi HTML, data yang dikembalikan akan merangkumi semua HTML dan itu akan menjadi sangat mengelirukan.
  • Pastikan fail PHP (dan mana-mana fail yang disertakan) hanya mempunyai satu pernyataan gema. (Oh, dan semak mana-mana fail yang disertakan untuk html atau gema)
  • Json_encode apa yang akan dihantar melalui echo. Anda mungkin mahu mempunyai javascript json Parse untuk menjadikannya tatasusunan javascript, tetapi itu tidak penting.

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan