Hoy he descubierto una manera más legible de cómo pasar datos por AJAX cuando utilizamos jQuery.

Como sabemos, una llamada AJAX con jQuery acepta un parámetro data, consistente en los datos a enviar al servidor.
Hasta ahora, siempre había hecho este tipo de peticiones generando yo la query string de la petición:

$.ajax({
  url: destination.url,
  data: "id="+blog.id+"&name="+blog.name+
        "&url="+blog.url+"&author="+blog.author,
  type: "post",
  success: function(json) {
    [...]
  },
  error:function (xhr, ajaxOptions, thrownError) {
    [...]
  }
});

De lo que me acabo de enterar, es que siempre que data reciba como parámetro un objeto formado por un conjunto de pares clave/valor jQuery se encarga de transformarlo a una query string. Además, si el valor consiste en un array, jquery serializará un conjunto de valores con la misma clave.
Así, si utilizamos objetos la cosa quedaría como sigue:

var ajax_data = {
  "id"     : blog.id,
  "name"   : blog.name,
  "url"    : blog.url,
  "author" : blog.author
};

$.ajax({
  url: destination.url,
  data: ajax_data,
  type: "post",
  success: function(json) {
     [...]
  },
  error:function (xhr, ajaxOptions, thrownError) {
     [...]
  }
});

En mi opinión, queda más limpio y no corremos el error de olvidarnos de algún símbolo. Además, quien venga detrás a tocar nuestro código nos lo agradecerá.

Fuente: jQuery API

Anuncios