если ограничения по браузерам устраивают — то формдата отличный вариант.
var formElement = document.getElementById("someFormElement");
var formData = new FormData(formElement);
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://some.url/");
xhr.send(formData);