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

War es hilfreich?

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)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top