FromData toString und Kontextwechsel
bearbeitet von pl Tach!
>
> > Entscheidend ist der Kontextwechsel! Und bei `xhr.send(formdata)` heißt der Kontext String.
>
> Das kann ich nicht als richtig akzeptieren. Die MDN führt eine ganze Reihe von Dingen auf, die [XHR.send()](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send) akzeptiert.
>
> A body of data to be sent in the XHR request. This can be:
>
> * A Document, in which case it is serialized before being sent.
> * A BodyInit, which as per the Fetch spec can be a Blob, BufferSource, FormData, URLSearchParams, ReadableStream, or USVString object.
>
> String ist nur eine der Möglichkeiten.
Abstrakt gesehen ist das alles `Stringkontext`, auch der Blob. Allgemein handelt es sich um Bytesequenzen und somit kommen wir wieder zum Wirth'schen Dateibegriff ohne den es mp3 gar nicht geben würde.
Aber zurück zu den Sequenzen, ein `xhr.send(blob)` bewirkt, daß in STDIN serverseitig eine Bytesequenz zu lesen ist. Dasselbe bei `xhr.send('äöü')` und natürlich auch wenn ein ArrayBuffer gesendet wird.
Selbst in JS kann man zwischen Blob, USVString ArrayBuffer vermitteln, `new Blob(['äöü']);` als Beispiel.
Für uns als Informationstechniker ist das Entscheidende an den von Dir o.g. Datentypen, daß der Informationsgehalt derselbe ist. Und genau das zeigen die von mir verlinkten Anwendungen!
Und dahinter steckt eben der Fakt, daß Daten nicht als Objekte, Arrays, Blob usw, übertragen werden sondern grundsätzlich als Bytesequenzen. Wenn man serverseitig also ein `äöü` in STDIN bekommt, ist es unerheblich ob diese Sequenz aus der Sicht von JS als Blob, File, ArrayBuffer oder String gesendet wurde, der Inhalt ist absolut derselbe.
Umgekehrt ist das ganz analog: Eine serverseitige gesendete Sequenz `äöü` kann JS im Browser als Blob, File, ArrayBuffer oder als Text/String empfangen und, wie bereits dargelegt, die FetchAPI kann aus einem Messagebody sogar ein FormData Objekt erstellen.
Also ich denke schon, daß der Begriff `Stringkontext` hier trefflich passt. Letztendlich sind das ja auch alles grundsätzliche Dinge die sich in der IT über Jahrzehnte entwickelt haben. Inwieweit zwischen String und Bytesequenz unterschieden wird, daß regeln die einzelnen Programmiersprachen, somit ist das überhaupt ein Streitthema.
Und selbst wenn hierfür einmal nicht der exakte Fachbegriff benutzt würde, so sollte doch wenigstens klar sein worum es geht.
MfG