Heim >Backend-Entwicklung >PHP-Tutorial >Zu vermeidende fetch()- und XMLHttp-Fehler

Zu vermeidende fetch()- und XMLHttp-Fehler

Susan Sarandon
Susan SarandonOriginal
2024-11-26 13:27:11241Durchsuche

fetch() & XMLHttp errors to avoid

Leider konnte ich diese Fehler nicht vermeiden. Ich hoffe, dass dies anderen dabei hilft, sie zu vermeiden, wenn sie versuchen, eine Webseite zu aktualisieren, ohne eine vollständige neue Version herunterzuladen. Der Code, den ich am Ende erhalten habe, scheint zu funktionieren:

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 arbeitet innerhalb einer asynchronen Funktion, um sicherzustellen, dass die Daten angekommen sind, bevor versucht wird, darauf zuzugreifen. Wenn Sie eine asynchrone Funktion aus normalem Code aufrufen müssen, lautet die Syntax .then:

fetchDbSingle(url, str).then(data => {
  console.log("Received data:", data);
  // Use the data here
}).catch(error => {
  console.error("Error fetching data:", error);
}); 

Wenn Sie versuchen, auf die Daten zuzugreifen, ohne diese spezielle Syntax zu verwenden, sind die Daten undefiniert, da Sie auf sie zugreifen, bevor sie angekommen sind.

Wenn Sie versuchen, auf die Daten außerhalb der markierten Orte zuzugreifen, sind diese undefiniert.

In meinem Programm ruft fetch() ein PHP-Skript auf, das eine Datenbank liest.

Hier sind einige Warnungen, die für den Erfahrenen vielleicht keinen Sinn ergeben, von denen ich aber wünschte, ich hätte sie früher gewusst:

  • Beachten Sie, dass PHP die Daten per Echo sendet und dass in diesem Fall das Echo nicht auf dem Bildschirm erscheint.
  • Stellen Sie sicher, dass Ihre PHP-Datei nur PHP-Code enthält. kein HTML. Wenn es HTML enthält, enthalten die zurückgegebenen Daten den gesamten HTML-Code, was sehr verwirrend sein wird.
  • Stellen Sie sicher, dass die PHP-Datei (und alle darin enthaltenen Dateien) nur eine Echo-Anweisung haben. (Oh, und überprüfen Sie alle enthaltenen Dateien auf HTML oder Echo)
  • Json_encode, was per Echo gesendet werden soll. Möglicherweise möchten Sie Javascript JSON Parsen lassen, um daraus ein Javascript-Array zu machen, aber das ist nicht unbedingt erforderlich.

Wenn jemand wissen möchte, warum ich die oben genannten Warnungen erwähne, könnte ich einen Aufsatz über die Fehler schreiben, die ich gemacht habe, und darüber, wie ich eine Woche gebraucht habe, um sie zu korrigieren. Anschließend können Sie lachen und sich überlegen fühlen.

Das obige ist der detaillierte Inhalt vonZu vermeidende fetch()- und XMLHttp-Fehler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn