Como enviar e recuperar dados do método web usando o JQuery Ajax Call?

Eu tenho uma checkbox de texto e um botão ao lado dela. Eu quero enviar o conteúdo da checkbox de texto através de chamada de jquery ajax para webmethod e voltar o valor de maiúsculas do mesmo e exibir isso em alerta. Até agora eu tenho esse código, mas não está funcionando.

JAVASCRIPT:

function CallWM() { var name = $('#name').val(); RealCallWM(name); } function RealCallWM(name) { $.ajax({ url: 'Register.aspx/UpperWM', type: 'POST', contentType: 'application/json; charset=utf-8', data: { name: JSON.stringify(name) }, success: OnSuccess(response), error: function (response) { alert(response.responseText); } }) }; 

HTML:

  Name:  

MÉTODO DA WEB:

  [WebMethod] public static string UpperWM(string name ) { var msg=name.ToUpper(); return (msg); } 

De acordo com o seu comentário, entendi que seu problema ainda não foi resolvido, por isso, tente isso

  function RealCallWM(name) { $.ajax({ type: "POST", url: "Default.aspx/UpperWM", data: JSON.stringify({ name: $('#name').val() }), contentType: "application/json; charset=utf-8", dataType: "json", async: true, success: function (data, status) { console.log("CallWM"); alert(data.d); }, failure: function (data) { alert(data.d); }, error: function (data) { alert(data.d); } }); } 

Substituir:

 data: '{name: ' + name + '}', 

com:

 data: { name: JSON.stringify(name) }, 

para garantir a codificação correta. Agora você está enviando a seguinte carga:

 {name:'some value'} 

que é obviamente uma carga útil JSON inválida. No JSON, tudo deve ser citado duas vezes:

 {"name":"some value"} 

Essa é a razão pela qual você absolutamente nunca deveria estar construindo o JSON manualmente com algumas concatenações de strings, mas usando os methods JSON.stringify para isso ( JSON.stringify ).

Nota: Não tenho certeza se há um retorno de chamada chamado de failure que o método $.ajax entende. Assim:

 $.ajax({ url: 'Register.aspx/UpperWM', type: 'POST', contentType: 'application/json; charset=utf-8', data: { name: JSON.stringify(name) }, success: OnSuccess(response), error: function (response) { alert(response.responseText); } }); 

Observe também que, em seu retorno de chamada de erro, removi a propriedade response.d como se houvesse uma exceção em seu método da Web. As chances são de que o servidor não retornará nenhum JSON.