sábado, 19 de janeiro de 2013

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.

Nenhum comentário :

Postar um comentário