Warum ist $_POST hier leer?


17.04.2022, 13:08

achso, ich hab jetzt nicht den ganzen JavaScript code reingepackt, also ich hab noch vor der Ajax methode clientseitige input validierung und e.preventDefault(), daran kanns also net liegen :)

2 Antworten

Mit jQuery hab ich nicht so viel gearbeitet, aber ich würde mir als erstes mal anschauen, was eigentlich rausgeschickt wird.

Unter Chrome in den Dev Tools auf "Network" und auf "Fetch/XHR" begrenzen. Wenn du dann den AJAX-Call machst, sollte der Request dann in der Liste auftauchen, da kannst du ihn dann inspizieren und dir unter anderem die Payload anschauen. Dann hättest du zumindest mal einen Anhaltspunkt ob gar nichts oder was falsches geschickt wird.

Woher ich das weiß:Berufserfahrung – Tätigkeit als Webentwickler in einer Digitalagentur
ArduinoGeek 
Fragesteller
 17.04.2022, 16:10

Hab da gerade nachgeschaut, rausgeschickt wirds genau so wie ichs will... Hab da jetzt bisschen was geändert, hab anstatt form.serialize() die Form-Daten in ein FormData Objekt gepackt und das wird auch richtig gesendet. Die Dinge die ich in die einzelnen input Felder geschrieben habe, stehen da. Das PHP File sagt aber immernoch, POST is leer :(

0
Ireeb  17.04.2022, 16:47
@ArduinoGeek

Kannst du mal hier reinposten was rausgeschickt wird?

0
ArduinoGeek 
Fragesteller
 17.04.2022, 17:10
@Ireeb

Funktioniert jetzt, nachdem ich contectType bei der ajax methode rausgenommen hab :) ich denke mal, das jquery versucht hat die FormData in nen String umzuwandeln, das aber logischerweise nicht funktioniert hat. Daher wurden wahrscheinlich die Daten auch nicht richtig in Post eingelesen. Funktioniert jetzt auf jeden Fall. Danke an euch beide :)

1

dein

contentType: "application/json",  

rausnehmen .

ArduinoGeek 
Fragesteller
 17.04.2022, 17:07

Danke, das war das Problem :) hast du noch ne Erklärung warum ich das rausnehmen muss?

1
TechPech1984  17.04.2022, 17:09
@ArduinoGeek

weil der grundtyp für POST ist

contentType: 'application/x-www-form-urlencoded',

sonst kommt glaub ich alles nur in $_POST['data']
0