Bonjour !
Je suis peut être en retard mais j'ai cherché longtemps à envoyer des données de type data en asynchrone en AJAX. Il existe des moyens très compliqués de le faire (envoyer purement et simplement ces données et les retranscrire à l'arrivée...).
Il y a un petit "truc" qui peut peut-être aider à avancer certains : ce n'est pas très propre ni très valide mais ça marche.
Le problème est que de base, nous savons envoyer des données autres que caractères à une page php (sans AJAX). Si on le fait tel quel, la page se recharge et ce n'est donc plus asynchrone. Le principe est donc de déporter ce chargement dans une zone invisible : une iframe.
Placez une iframe avec un style="display:none;" et un name="mon_nom_iframe" quelque part dans votre page. Elle va être le "réceptacle" de votre formulaire.
Pour dire à votre formulaire qu'il doit se charger dans l'iframe et non dans la frame courante, utilisez target :
<form target="mon_nom_iframe" action="..." enctype="multipart/form-data">
....
</form>
Pour récupérer des valeurs dans l'iframe, un peu de onload et de javascript feront passer ça pour de l'asynchrone.
Ca fonctionne, ça aide, mais ce n'est pas le plus propre, je l'avais dit ^^.