Salve a tutti.
Sto realizzando un form di registrazione nel quale tramite AJAX voglio verificare che l'email inserita dall'utente non risulti già registrata.

Per farlo ho utilizzato i seguenti sorgenti:

All'interno del form:
codice:
<input type="email" name="email" pattern="[a-z0-9._-]+@[a-z0-9.-_]+\.[a-z]{2,3}$" title="Indirizzo email non valido." maxlength="255" onblur="emailGiaInUso(this.value);" required />
Script ajax
codice:
function emailGiaInUso(email)
			{
				function assegnaXMLHttpRequest()
				{
					var XHR = null, browserUtente = navigator.userAgent.toUpperCase();


				    if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
						XHR = new XMLHttpRequest();
					else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0)
				    {
						if(browserUtente.indexOf("MSIE 5") < 0)
							XHR = new ActiveXObject("Msxml2.XMLHTTP");
						else
							XHR = new ActiveXObject("Microsoft.XMLHTTP");
					}
					return XHR;
				}


				myRequest = assegnaXMLHttpRequest();
				if( myRequest )
				{
					myRequest.open("POST","email_esistente.php", true);
					myRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded");
					//myRequest.setRequestHeader("connection", "close");


					alert("Readystate prima di send: " +myRequest.readyState);
					alert("Status prima di send: " +myRequest.status);
					myRequest.send("email="+email); //fa passare $_POST['regione']=valore al file carica_regione.php
					alert("Readystate post send: " +myRequest.readyState);
					alert("Status post send: " +myRequest.status);
					
                                        if(myRequest.readyState==4 && myRequest.status==200)
					{
						/* CODICE ANCORA DA SCRIVERE */
					}
				}
			}
Script email_esistente.php che interroga il db
codice:
<?php
    if( isset($_POST['email']) )
    {
        include_once("db.php");


        $pst = $dbCon->prepare("SELECT * FROM utenti WHERE email = ?");
        // variabili per la sostituzione dei placeholder
        $pst->bind_param('s', $email);
        // variabili per l’esecuzione
        $email = $_POST['email'];
        // esecuzione dell’istruzione
        $pst->execute();
        // chiusura dello statement
        $pst->close();
    }
?>
Il problema nasce dal fatto che la richiesta, anche dopo il send, resti in readystate 1 (stato di open) e in status 0, stato che evidentemente segnala un qualche errore a cui non riesco a risalire.