JQuery Ajax-Aufruf erfolgt nicht alphanumerische Parameter!
-
06-07-2019 - |
Frage
JQuery scheint einen Fehler zu geben, wenn sie versuchen einen alphanumerischen Parameter zu übergeben, wie so:
$.ajax({
type: "POST",
url: "Default.aspx/AjaxTest",
data: "{eventID:9a5}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg.d);
},
error: function(e) {
alert("Event could not be added to calendar");
}
});
, wenn die obige Methode aufgerufen wird, wird der Fehler-Callback aufgerufen. Allerdings, wenn ich die eventID Parameter auf einen rein numerischen Wert zu ändern, es funktioniert gut und der Erfolg Rückruf aufgerufen wird. Ich möchte einen alphanumerischen Wert zu einem Server-Methode übergeben und dies scheint nicht zu funktionieren. Jede mögliche Hilfe würde geschätzt.
Ahmed
Lösung 2
Ich habe gelernt, wie dieses Problem zu lösen. Es stellte sich heraus, dass ich eine JSON-Fehlermeldung erhalten: „ungültiger JSON primitiv“. Ich musste zusätzliche einfache Anführungszeichen um meine String-Parameter hinzufügen, so JSON verstehen würde es sich um eine Zeichenfolge war, als es wurde Deserialisieren. Ich habe einfache Anführungszeichen um meine alphanumerische Daten, so dass JSON verstehen würde es sich um eine Zeichenfolge war. Dies ist, wie mein Code am Ende arbeiten:
$.ajax({
type: "POST",
url: "Default.aspx/AjaxTest",
data: "{eventID:'9a5'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg.d);
},
error: function(e) {
alert("Event could not be added to calendar");
}
});
Danke sowieso alle.
Andere Tipps
Wenn Sie die Daten nicht wie bei einem normalen Javascript-Wörterbuch werden vorbei?
$.ajax({
...
data: {"eventID": "9a5", "SomeNumericField": 25}
...
});
(z.. Sie Anführungszeichen nicht um Ihre Daten legen Ich bin mir ziemlich sicher, dass es nicht soll ein String so sein)