xmlhttprequest: «пароль» из txt-файла - PullRequest
0 голосов
/ 10 февраля 2010

Я новичок в 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 в моих классах.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 февраля 2010

Как и многие из API-интерфейсов JavaScript, объект XHR также имеет асинхронный интерфейс. Поэтому вам нужно определить функции обратного вызова для обработки ответов:

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

Поиск например в сети. Я нашел пост , немного старый, но, кажется, есть хорошие примеры .

0 голосов
/ 10 февраля 2010

добавить следующий код к событию 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...