2010-02-10 8 views
0

Je suis nouveau en javascript/ajax et un peu coincé en ce moment. L'affectation consiste à utiliser uniquement javascript/ajax.xmlhttprequest: "mot de passe" de txt-fichier

Je suis censé créer un formulaire de connexion, et en tapant le bon mot de passe, il affichera un "message secret". Actuellement, ce message est une boîte d'alerte.

Ceci est dans le script pour valider l'entrée de formulaire:

var riktigPassord = 'password';  
var passord = window.document.passordSkjema.passord.value; 
    if (passord == riktigPassord) { 
     alert("Dette er en hemmelig beskjed"); 
     window.document.passordSkjema.passord.focus(); 
     return true; 
    } 
    else { 
     alert("Innlogging mislyktes. Passord er feil!"); 
     window.document.passordSkjema.passord.focus(); 
     return false; 
    } 
    }//slutt på funksjonen her 

Et voici le code pour la forme:

<form name="passordSkjema" action="#" method="post" 
onSubmit="return validerPassord();"> 
Passord: <input type="text" name="passord"><br> 
<input type="submit" name="knapp"> 
</form> 

Je suis censé obtenir le mot de passe d'un txt fichier. (toujours en utilisant seulement javascript) et dans mon cas, le txt-nom de fichier est "password.txt".

Je ne l'ai jamais fait ça avant, mais je pense que je sais comment faire un XHR objet ... xD

// New XMLHttpRequest-object 
function newXHRobjekt() { 
try { 
    XHRobjekt = new XMLHttpRequest(); // Firefox, Opera, ... 
} catch(err1) { 
    try { 
    XHRobjekt = new ActiveXObject("Microsoft.XMLHTTP"); // Noen IE 
    } catch(err2) { 
    try { 
    XHRobjekt = new ActiveXObject("Msxml2.XMLHTTP"); // Noen IE 
    } catch(err3) { 
    XHRobjekt = false; 
    } 
    } 
} 
return XHRobjekt; 
} 

Alors .. Ma question est. Comment puis-je utiliser un objet XHR pour utiliser les fonctions ci-dessus pour vérifier l'entrée de mot de passe contre password.txt. le fichier contient seulement le mot de passe (par exemple seulement "12345"). et aussi je voudrais savoir comment obtenir le "message secret" d'un autre fichier txt. Je suis conscient que ce n'est pas sécurisé du tout, mais cela fait partie de la compréhension de javascript/Ajax, dans mes cours.

Merci!

Répondre

0

Ajoutez le code suivant à l'événement onload du corps.

var passwordLoaded = false; 
var password = ""; 
var secretMessageLoaded = false; 
var secretMessage = ""; 

var xhr = newXHRobjekt(); 
xhr.open("GET", "password.txt"); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState == 4) { 
     password = xhr.responseText; 
     passwordLoaded = true; 
    } 
} 
xhr.send(null); 

xhr = newXHRobjekt(); 
xhr.open("GET", "secret_message.txt"); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState == 4) { 
     secretMessage = xhr.responseText; 
     secretMessageLoaded = true; 
    } 
} 
xhr.send(null); 

Si les deux passwordLoaded et secretMessageLoaded sont définies sur true, vous pouvez utiliser les variables mot de passe et secretMessage.

0

Comme la plupart des API Javascript, l'objet XHR dispose également d'une interface asynchrone. Vous aurez donc besoin de définir des fonctions de rappel pour gérer les réponses:

xmlhttp.open("POST", "http://example.com",true); 
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4) { 
    alert(xmlhttp.responseText) 
    } 
} 
xmlhttp.send('my request data'); 

Recherche par exemple sur le net. J'ai trouvé un post, a bit old but seem to have good examples.