Maison > développement back-end > tutoriel php > erreurs fetch() et XMLHttp à éviter

erreurs fetch() et XMLHttp à éviter

Susan Sarandon
Libérer: 2024-11-26 13:27:11
original
281 Les gens l'ont consulté

fetch() & XMLHttp errors to avoid

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
  }
}
Copier après la connexion

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

Copier après la connexion

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 :

  • Notez que le PHP enverra les données par écho, et que dans ce cas l'écho n'apparaîtra pas à l'écran.
  • Assurez-vous que votre fichier PHP ne contient que du code PHP ; pas de HTML. S'il contient du HTML, les données renvoyées incluront tout le HTML et ce sera très déroutant.
  • Assurez-vous que le fichier PHP (et tout fichier qu'il inclut) n'a qu'une seule instruction echo. (Oh, et vérifiez tout fichier inclus pour le HTML ou l'écho)
  • Json_encode ce qui doit être envoyé par écho. Vous souhaiterez peut-être que javascript json l'analyse pour en faire un tableau javascript, mais ce n'est pas essentiel.

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal