JSON POST – enviando json para o servidor

Certa vez tive a necessidade de enviar JSON para o servidor de aplicação no formato JSON em vez dos parâmetros regulares. Uma necessidade bem comum nestes dias de web 2.0

Da necessidade e algumas horas de experimentação depois saiu este plugin:

(function($) {
  $.json_post = function(url, data, success) {
     var params = {
       url : url,
       data : JSON.stringify(data),
       type : 'POST',
       success : success,
       contentType : "application/json"
     };
     return $.ajax(params);
   };
})(jQuery);

A ‘posologia’ é bem simples: monte seu objeto javascript, no formato que o servidor de aplicação espera receber. Em seguida envie-o com sintaxe parecida com a que você já é acostumado a usar com a função $.get():

var usu = {
  userName : $("#nmusuario").val(),
  password : $("#nmsenhausu").val()
};
$.json_post("../service/misc/user", usu, function(ret) {
  //... tratamento do retorno
});

Em posts futuros apresento as implicações server-side desta abordagem. Quem já trabalhou com DWR vai se identificar de imediato.
Este snippet foi testado no firefox 7 com o jQuery 1.6, mas não enxergo motivos que impeçam o mesmo de funcionar com um setup mais antigo. Disponibilizei esse pequeno componente no github também.

Deixe um comentário