Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » js fetch anwenden
Autor
Kein bestimmter Bereich J js fetch anwenden
Goswin
Senior Letzter Besuch: im letzten Monat
Dabei seit: 18.09.2008
Mitteilungen: 1728
Wohnort: Chile, Ulm
  Themenstart: 2022-05-28

Ich versuche, mit "fetch" Daten vom Client an den Server zu senden, was bei mir aber noch *nie* funktioniert hat. Was mache ich bei der folgenden Vorgehensweise falsch, bzw was fehlt mir? \sourceon javascript \numberson \sourceoff \sourceon php \numberson \sourceoff Manchmal ist gar keine Datei "fortschritt.js" auf dem Server, oder aber sie enthält die Daten nicht.


   Profil
Triceratops
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 28.04.2016
Mitteilungen: 6338
Wohnort: Nordamerika
  Beitrag No.1, eingetragen 2022-05-28

Du führst doch die Funktion "sende_Fortschritt" nirgendwo aus. Und in deiner php-Datei liest du die JavaScript-Datei nur als Text ein. Du kannst in deiner php-Datei (und natürlich auch in einer HTML-Datei) einfach den script-Tag einbetten. Du musst keine separate Datei auslesen. Ergänze dann die folgende Zeile am Ende des Skriptes. sende_Fortschritt(data); Was noch zu beachten ist: fetch ist eine asynchrone Funktion. Wenn du wirklich nicht mehr machen willst als in deinem Codebeispiel, muss das wohl nicht weiter beachtet werden. Ansonsten würde ich dir aber stark empfehlen, "sende_Fortschritt" zu einer asynchronen Funktion zu machen, den fetch-Befehl mit await zu versehen und auch den Funktionsaufruf oben. https://javascript.info/async-await https://javascript.info/fetch


   Profil
Goswin
Senior Letzter Besuch: im letzten Monat
Dabei seit: 18.09.2008
Mitteilungen: 1728
Wohnort: Chile, Ulm
  Beitrag No.2, vom Themenstarter, eingetragen 2022-05-28

Hallo Triceratops, Ich weiß deine wohlgesinnten Anmerkungen sehr zu schätzen. Aber leider helfen sie mir nicht weiter. Die obigen Codesnippets beziehen sich nur auf die Teile meines Codes, die ich nicht verstehe. Der script-Tag war schon immer in meine html-Datei eingebettet, und natürlich wird die Funktion sende_Fortschritt dort öfters aufgerufen. Es geht also wohl um die restlichen Anmerkungen, die für mein Verständnis leider zu hoch sind. Mir ist völlig egal, wann "sende_Fortschritt" ausgeführt wird, solange es nur irgendwann (innerhalb der nächsten Viertelstunde) ausgeführt wird, und solange die Anweisungen *innerhalb der Funktion* der Reihenfolge nach ausgeführt werden. Wo ist da ein Problem? Wobei mich schon der Name "fetch" misstrauisch macht: es wird damit angedeutet, dass man sich etwas vom Server *holen* möchte, wobei ich doch gar nichts holen, sondern dort etwas *ablegen* will. Was "await" macht und wie es angewendet wird habe ich noch nicht verstanden. Überhaupt habe hatte ich keine halbwegs vollständige Benutzeranleitung für fetch gefunden; nur die ständigen Kommentare, dass es "besser als ajax" sein soll.


   Profil
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 3759
  Beitrag No.3, eingetragen 2022-05-28

\quoteon(2022-05-28 02:11 - Goswin in Beitrag No. 2) Wobei mich schon der Name "fetch" misstrauisch macht: es wird damit angedeutet, dass man sich etwas vom Server *holen* möchte, wobei ich doch gar nichts holen, sondern dort etwas *ablegen* will. \quoteoff HTTP basiert auf einem Request/Response-Ping-Pong: Der Client sendet einen Request an den Server und der Server antwortet mit einer Response. Fetch spielt hierbei mit. Es sendet einen Request mit gegebenen Parametern an eine gegegebe URL und liefert als Ergebnis die Response. Nicht nur das Lesen von Daten vom Server, sondern auch das Senden von Daten an den Server ist ein Request, nämlich typischerweise (wie in deinem Code im Startbeitrag) ein Request mit der Methode POST. Du findest Hinweise hierzu (etwa diesen), indem du nach javascript fetch post googelst. \quoteon(2022-05-28 02:11 - Goswin in Beitrag No. 2) Überhaupt habe ich keine halbwegs vollständige Benutzeranleitung für fetch gefunden \quoteoff Was spricht denn gegen Triceratops' Link? --zippy


   Profil
Triceratops
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 28.04.2016
Mitteilungen: 6338
Wohnort: Nordamerika
  Beitrag No.4, eingetragen 2022-05-28

\quoteon(2022-05-28 02:11 - Goswin in Beitrag No. 2) Ich weiß deine wohlgesinnten Anmerkungen sehr zu schätzen. Aber leider helfen sie mir nicht weiter. [...] Die obigen Codesnippets beziehen sich nur auf die Teile meines Codes, die ich nicht verstehe. Der script-Tag war schon immer in meine html-Datei eingebettet, und natürlich wird die Funktion sende_Fortschritt dort öfters aufgerufen. \quoteoff Poste dann bitte ein Minimalbeispiel, also den vollständigen Code aller relevanten Dateien minus das, was für die Frage nicht relevant ist (der Funktionsaufruf ist relevant).


   Profil
Goswin
Senior Letzter Besuch: im letzten Monat
Dabei seit: 18.09.2008
Mitteilungen: 1728
Wohnort: Chile, Ulm
  Beitrag No.5, vom Themenstarter, eingetragen 2022-05-28

Vielen Dank, zippy & Triceratops! Der Fehler ist gefunden, und war eigentlich auch im Startbeitrag sichtbar: der für mich seltsame Ausdruck 'php://input' ist ein Dateiname und muss dann natürlich in Anführungsstrichen stehen. Also ein Syntaxfehler, der aber nicht angezeigt wird, solange die Datei auf dem Server läuft. Bis mir jemand den trickreichen Rat gab, diese Datei doch auf meinem Rechner laufen zu lassen. Ergebnisse sind dann zwar unbrauchbar, aber Syntaxfehler werden angezeigt.


   Profil
Goswin hat die Antworten auf ihre/seine Frage gesehen.
Goswin hat selbst das Ok-Häkchen gesetzt.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2022 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]