Cuando coloco e.preventdefault() después del código, funciona, sin embargo, actualiza la página.
Si lo dejo al principio del código, evita que se ejecuten las otras líneas y no extrae la solicitud.
function loadPhoto(e){ e.preventDefault(); //forming images var formData = new FormData( document.getElementById("uploading") ); for(var i = 0; i < document.getElementById("up").files.length; i++) { console.log(i) formData.append("up[]",document.getElementById("up").files[i]); } var filename = document.getElementById('up'); alert(filename) filename = filename.files[0].name; alert(filename) var xhr = new XMLHttpRequest(); xhr.open('POST', '/reqUpload'); xhr.onload = function(){ xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); alert(this.responseText) document.getElementById('#photo').innerHTML = this.responseText; } xhr.send(formData); }Lo resolví usando onclick="loadPhoto(event)"