Estoy enviando algunos datos de formulario con un XMLHttpRequest
let xhr = new XMLHttpRequest(); xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/json"); try { let data = JSON.stringify(sendForm); xhr.send(data); alert(xhr.status); } catch (error) { alert(error); }Esto funciona ya que entrará en esto después de que aparezca la alerta en el navegador
xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { location.href = 'thanks.html'; } y los datos se insertarán en la base de datos como se esperaba. Sin embargo, si comento la alerta después de xhr.send(data); este código ya no insertará datos en la base de datos ni mostrará la página correcta, solo muestra el archivo js. Si configuro un punto de interrupción en xhr.send(data) cuando paso, es cuando se muestra el archivo js. ¿Alguna idea de por qué se envían los datos si incluyo el paso de alert(xhr.status) en el código pero no cuando lo comento? Además, ¿alguna idea de por qué try{}catch{} no detecta el error? Gracias, no estoy muy familiarizado con javascript en este momento.