XHR bzw. fetch haben keinen Default-enctype. Den haben nur Forms.
Der Enctype bzw. Content-Type
application/x-www-form-urlencoded
ist der Default für den serverseitigen Parser, auch der in PHP verbaute Parser nimmt diesen Default an wenn kein Content-Type gesendet wurde. Das hat nichts Forms zu tun sondern mit CGI/1.1.
Besser gesagt: Mit der dem Webserver über CGI angebundenen Anwendung. Insofern ist es mir völlig unverständlich daß XHR einen Content-Type text/plain
bzw. application/octet-stream
(siehe Spec.) generiert.
Und ja natürlich entwickelt jeder sein eigenes Verständnis, wäre ja schlimm wenn das nicht so wäre.
Schlüssig wäre, daß XHR, wenn infolge der Überlagerung der send()-Funktion weder application/x-www-form-urlencoded
noch multipart/form-data
erkannt wurden, gar keinen Content-Type-Header sendet.
So sehe ich das, danke fürs Mitlesen.