Pergunta

JQuery parece estar dando um erro ao tentar passar um parâmetro alfanumérico assim:

            $.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 o método acima é chamado, a chamada de retorno de erro é chamado. No entanto, quando eu alterar o parâmetro eventID para um valor puramente numérico, ele funciona bem eo callback sucesso é chamado. Eu gostaria de passar um valor alfanumérico a um método do servidor e isso não parece trabalho. Qualquer ajuda seria apreciada.

Ahmed

Foi útil?

Solução 2

Eu só aprendi a resolver este problema. Acontece que eu estava recebendo uma mensagem de erro JSON: "Invalid JSON primitivo". Eu tive que adicionar aspas simples adicionais ao redor do meu parâmetro de seqüência de modo JSON iria entender que era uma corda quando foi deserializing-lo. Eu adicionei aspas simples em torno de meus dados alfanuméricos para que JSON iria entender que era uma string. Isto é como meu código acabou trabalhando:

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

Obrigado a todos de qualquer maneira.

Outras dicas

Você não deveria estar passando dados como um dicionário normal Javascript?

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

(por exemplo:.. Não coloque aspas em torno de seus dados que eu tenho certeza que não é suposto ser uma string assim)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top