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:
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!