Pregunta

JQuery parece estar dando un error al intentar pasar un parámetro alfanumérico, como por ejemplo:

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

cuando se llama al método anterior, se llama a la devolución de llamada de error. Sin embargo, cuando cambio el parámetro eventID a un valor puramente numérico, funciona bien y se llama a la devolución de llamada correcta. Me gustaría pasar un valor alfanumérico a un método de servidor y esto no parece funcionar. Cualquier ayuda sería apreciada.

Ahmed

¿Fue útil?

Solución 2

Acabo de aprender cómo resolver este problema. Resulta que recibí un mensaje de error JSON: " Primitiva JSON no válida " ;. Tuve que agregar comillas simples adicionales alrededor de mi parámetro de cadena para que JSON entendiera que era una cadena cuando estaba deserializándola. Agregué comillas simples en mis datos alfanuméricos para que JSON entendiera que era una cadena. Así es como mi código terminó trabajando:

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

Gracias a todos de todos modos.

Otros consejos

¿No deberías pasar datos como un diccionario de JavaScript normal?

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

(Por ejemplo: No pongas comillas en tus datos. Estoy bastante seguro de que no se supone que sea una cadena como esa).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top