我是javascript / ajax的新手,现在有点卡住了。 该任务仅使用javascript / ajax。
我应该创建一个登录表单,当输入正确的密码时,它将显示“秘密消息”。目前此消息是一个警告框。
这是用于验证表单输入的脚本:
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
这是表格的代码:
<form name="passordSkjema" action="#" method="post"
onSubmit="return validerPassord();">
Passord: <input type="text" name="passord"><br>
<input type="submit" name="knapp">
</form>
我应该从txt文件中获取密码。 (仍然只使用javascript) 在我的例子中,txt-filename是“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 :(得分: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,则可以使用变量password和secretMessage。
答案 1 :(得分: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。