Schnell getestet:
$.ajax({
url: "testget.php",
data: JSON.stringify({ name: "heinrich", alter: "48" }),
success: function (output) {
console.log("mit stringify: " + output)
}
});
$.ajax({
url: "testget.php",
data: "name=heinric&alter=48",
success: function (output) {
console.log("mit URL-Parametern: " + output)
}
});
Alles anzeigen
Das erste funktioniert nicht wie erwartet: Es gibt eine GET-Variable mit dem JSON-String als Name und leerem Wert.
Das zweite funktioniert: name und alter stehen als GET-Variablen zur Verfügung.
D. h. jQuery erwartet als data einen String von URL-Parametern (wenn es sich um einen String handelt).
Es könnte sein, dass Du hier JSON.stringify mit der jQuery-Funktion serialize verwechselst:
https://api.jquery.com/serialize/
Edit: Ich hatte die Parameter contentType und dataType übersehen. Letzterer bezieht sich auf die Antwort vom Server. Ersterer ändert offenbar nichts, denn mit diesem Code:
$.ajax({
url: "testget.php",
method: "GET",
contentType: 'application/json',
data: JSON.stringify({ name: "heinrich", alter: "48" }),
success: function (output) {
console.log("mit stringify: " + output)
}
});
ist das Ergebnis das gleiche.