Domanda

JQuery sembra dare un errore quando tenta di passare un parametro alfanumerico in questo modo:

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

quando viene chiamato il metodo sopra, viene chiamato il callback dell'errore. Tuttavia, quando cambio il parametro eventID su un valore puramente numerico, funziona benissimo e viene chiamato il callback di successo. Vorrei passare un valore alfanumerico a un metodo server e questo non sembra funzionare. Qualsiasi aiuto sarebbe apprezzato.

Ahmed

È stato utile?

Soluzione 2

Ho appena imparato a risolvere questo problema. Ho scoperto che stavo ricevendo un messaggio di errore JSON: " Primitiva JSON non valida " ;. Ho dovuto aggiungere ulteriori virgolette singole attorno al mio parametro stringa in modo che JSON capisse che era una stringa quando la stava deserializzando. Ho aggiunto virgolette singole attorno ai miei dati alfanumerici in modo che JSON capisse che si trattava di una stringa. Ecco come ha funzionato il mio codice:

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

Grazie comunque comunque.

Altri suggerimenti

Non dovresti passare i dati come un normale dizionario Javascript?

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

(Ad esempio: non inserire virgolette tra i tuoi dati. Sono abbastanza sicuro che non dovrebbe essere una stringa del genere.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top