Actuellement, jQuery possède une fonction ajax qui est getJSON et qui permet de faire des appels Ajax qui récupèrent des données au format JSON. Le seul souci est que les paramètres envoyées le sont en GET, avec toutes les contraintes que cela impose.
Pour pouvoir fonctionner en POST avec la même logique, j'ai étendu jQuery avec une fonction postJSON:
jQuery.extend({ postJSON: function( url, data, callback) { return jQuery.post(url, data, callback, "json"); } });
Elle prend les mêmes arguments que getJSON mais fonctionne en POST.