2017-08-29 7 views
0

J'ai rencontré un problème étrange. J'ai créé une page de connexion qui envoie des données à une page PHP qui retourne un code de réponse comme "00000" pour ok "404" pour non trouvé etc. J'ai testé mon serveur avec l'outil Postman et le serveur trouvé fonctionne parfaitement bien. Lorsque mon html envoie des données au serveur serveur répond avec le code de réponse. Si le code de réponse est erroné, l'alerte html l'est. Toutefois, si je saisis les informations d'identification correctes et que le serveur répond avec succès, Ma page de connexion se recharge sans raison. Voici mon javascriptRechargement de page Web en entrant des valeurs correctes

function validatelog(){ 
var user_email_log=document.getElementById("user_email_log").value; 
var user_pass_log=document.getElementById("user_pass_log").value; 
if (user_email_log&&user_pass_log!=null) 
{ 
      var hr = new XMLHttpRequest(); 
      var url = "../logic/login.php"; 
      var vars = 
"user_email_log="+user_email_log+"&user_pass_log="+user_pass_log; 
      hr.open("POST", url, true); 
      hr.setRequestHeader("Content-type", "application/x-www-form- 
urlencoded"); 
      hr.onreadystatechange = function() { 
      if(hr.readyState == 4 && hr.status == 200) { 
       var saman = hr.responseText.trim(); 
       if(saman=="00000"){ 
        alert(saman); 
       }else if (saman == "404"){ 
        alert("Failed with 404"); 
       } 

       else{ 
        alert(saman); 
       } 
       } 
      } 
      hr.send(vars); 
     } 
    } 

Et mon html ressemble à ceci

<input id="user_email_log"/> 
<input id="user_pass_log"/> 
<button onclick="validatelog();">Log in</button> 

Répondre

1

Ajouter type="button" au bouton:

<button type="button" onclick="validatelog();">Log in</button> 

Quand il n'est pas spécifié, il est le même que type="submit" , et cela entraînera votre page à recharger.

+0

merci, Une telle erreur de débutant vaut une leçon :) – GeekWithGlasses

+0

Ne vous inquiétez pas, ça arrive^- ^ –

0

Si vous utilisez jquery, vous pouvez le faire. Je pense que la page est en train de se recharger parce que c'est le comportement par défaut.