Enviar formularios con ficheros por Ajax

Enviar el contenido de campos de un formulario al servidor (todos los campos o algunos de ellos) es una operación conceptualmente muy simple. Hasta hace muy pocos años, la forma de hacerlo era directamente desde HTML, con o sin validación previa por JavaScript. El formulario se enviaba al servidor, la página que recibia los datos los procesaba y se cargaba en el navegador, mostrando el resultado de la recepción y o el procesado. Si queríamos que no hubiera un cambio de página, se recurría al viejo truco de crear un iframe de ancho y alto 0 en la página dónde estaba el formulario, y se ponía el nombre de dicho iframe como atributo target, de modo que el script encargado de procesar los datos se cargaba en el iframe.