Tach!
Erstell einen Ajax-Request ohne Content-Type-Angabe oder nimm den Standard-Wert application/x-www-form-urlencoded. Sende als Payload sowas wie data=...
Aha, auf so eine Idee muss man ja erstmal kommen, das ging aus der Problembeschreibung leider nicht hervor.
Das ist aber eine der üblichen Verwendungen von Ajax-Requests. Auf diese Weise können die Daten in PHP einfach aus $_POST geholt werden, ohne dass man php://input bemühen muss.
Und das geht am Thema JSON auch völlig vorbei, es macht überhaupt keinen Sinn einen JSON so verwenden zu wollen!
Das würde mit allen Daten passieren, die so transportiert werden. Dass es diesmal mit JSON serialisierte getroffen hat, ist nebensächlich. Dass es andere Möglichkeiten gibt, JSON-Daten zu übertragen, als application/x-www-form-urlencoded, macht eine solche Übertragung nicht unbedingt sinnlos. Der JSON-String ist ein String wie andere Strings auch. Und wenn das Backend so aufgebaut ist, dass es damit funktioniert, warum nicht? Alles in allem ist das noch nicht unnötig kompliziert.
Die Zuweisung an $_POST ist Quatsch,
Du hast ja auch gar nicht verstanden, was ich Dir damit zeigen wollte:
Ist vielleicht auch besser so.
Weißt du, ich habe schon länger aufgegeben, verstehen zu wollen, was du sagen möchtest. Oft habe ich versucht, Fragen zu deinen Aussagen zu stellen. Meist hast du sie unbeantwortet gelassen und stattdessen irgendwas anderes erzählt, gern war das Perl-Code, nach dem keiner gefragt hat. Und diesmal war es auch nicht anders.
dedlfix.