2010-02-10 63 views
0

我剛接觸javascript/ajax,現在有點卡住了。 該作業僅使用javascript/ajax。xmlhttprequest:來自txt文件的「密碼」

我應該做一個登錄表單,當輸入正確的密碼時,它會顯示一個「祕密信息」。目前這條消息是一個警告框。

這是腳本驗證表單輸入:

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 

這是該表單的代碼:我應該從txt-得到密碼

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

文件。 (仍然只使用JavaScript) 和在我的情況下,txt文件名是「password.txt」。

我從來沒有這樣做過,但我想我知道如何使一個XHR對象...的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; 
} 

所以..我的問題是。如何使用XHR對象來使用上面的函數來檢查password.txt的密碼輸入。該文件只包含密碼(例如只有「12345」)。並且我想知道如何從另一個txt文件中獲得「祕密消息」。

我知道這根本不安全,但它是理解javascript/Ajax的一部分,在我的類中。

謝謝!

回答

0

將以下代碼添加到主體的onload事件。

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); 

如果passwordLoaded和secretMessageLoaded都被設置爲true,則可以使用變量的密碼和secretMessage。

0

與許多JavaScript API一樣,XHR對象也具有異步界面。因此,您需要定義回調函數來處理響應:

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

在網上搜索示例。我發現了一個post, a bit old but seem to have good examples