chamada ajax JQuery não leva parâmetros alfanuméricos!
-
06-07-2019 - |
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
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)