Question

JQuery semble donner une erreur en essayant de passer un paramètre alphanumérique comme suit:

            $.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");
                }
            });

lorsque la méthode ci-dessus est appelée, le rappel d'erreur est appelé. Cependant, lorsque je remplace le paramètre eventID par une valeur purement numérique, cela fonctionne correctement et le rappel de réussite est appelé. Je voudrais passer une valeur alphanumérique à une méthode de serveur et cela ne semble pas fonctionner. Toute aide serait la bienvenue.

Ahmed

Était-ce utile?

La solution 2

Je viens d'apprendre à résoudre ce problème. Il se trouve que je recevais un message d'erreur JSON: "Primitive JSON non valide". J'ai dû ajouter des guillemets simples supplémentaires autour de mon paramètre de chaîne pour que JSON comprenne que c'est une chaîne lorsqu'il la désérialise. J'ai ajouté des guillemets simples autour de mes données alphanumériques afin que JSON puisse comprendre qu'il s'agissait d'une chaîne. Voici comment mon code a fini par fonctionner:

        $.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");
            }
        });

Merci quand même.

Autres conseils

Ne devriez-vous pas transmettre des données comme un dictionnaire Javascript classique?

$.ajax({
...
data: {"eventID": "9a5", "SomeNumericField": 25}
...
});

(E.g: ne mettez pas de guillemets autour de vos données. Je suis presque sûr que ce n'est pas censé être une chaîne de ce type.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top