Malheureusement, je n'ai pas évité ces erreurs. J'espère que cela pourra aider les autres à les éviter lorsqu'ils tentent de mettre à jour une page Web sans télécharger complètement une nouvelle version. Le code avec lequel je me suis retrouvé semble fonctionner :
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 fonctionne dans une fonction asynchrone pour garantir que les données sont arrivées avant de tenter d'y accéder. Si vous devez appeler une fonction asynchrone à partir du code normal, la syntaxe est .then :
fetchDbSingle(url, str).then(data => { console.log("Received data:", data); // Use the data here }).catch(error => { console.error("Error fetching data:", error); });
Si vous essayez d'accéder aux données sans utiliser cette syntaxe spéciale, les données ne seront pas définies car vous y accédez avant qu'elles n'arrivent.
Si vous essayez d'accéder aux données en dehors des endroits marqués, elles ne seront pas définies.
Dans mon programme, fetch() appelle un script PHP qui lit une base de données.
Voici quelques avertissements qui n'ont peut-être aucun sens pour les expérimentés, mais que j'aurais aimé connaître plus tôt :
Si quelqu'un souhaite savoir pourquoi je mentionne les avertissements ci-dessus, je pourrais écrire un essai sur les erreurs que j'ai commises et comment il m'a fallu une semaine pour les corriger et vous pourrez alors rire et vous sentir supérieur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!