повторение в опере

VampaOdinn

Новичок
повторение в опере

скрипт для проверки формы
Код:
var cache = new Array();

function getLogin(only_repeat) { 
	if (xmlHttpLogin) {
		if (!only_repeat) {
			var name = document.getElementById("login").value;
			var passwd = document.getElementById("passwd").value;
			var error = "";
			
			if (name=="") error="введите логин!";
			else if (passwd=="") error="введите пароль!";
			
			if (error=="") {
				var the_url='login='+encodeURIComponent(name)+'&passwd='+encodeURIComponent(passwd);
				cache.push(the_url);
			} else alert('aaaaaaaa!!!!');
		}
		
		try {
			if ((xmlHttpLogin.readyState == 4 || xmlHttpGetLog.readyState == 0) && cache.length > 0) {    
				cache_entry = cache.shift();
				
				xmlHttpLogin.open("POST", 'index.php?div=login', true);   
				xmlHttpLogin.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				xmlHttpLogin.onreadystatechange = waitForLogin;
				xmlHttpLogin.send(cache_entry);
			}
		} catch(e) {}
	}
}

function waitForLogin() {
	if (xmlHttpLogin.readyState == 4 || xmlHttpLogin.status == 200) {
		try {
			var response = xmlHttpLogin.responseText;
			
			if (response=='ok') alert('логин!');
			else alert('неправильный логин или пароль');
			
			setTimeout('getLogin(true);', 500);
		} catch(e) {}
	}
}
в опере функция waitForLogin выполняется два раза (ну, то есть при пробной авторизации ровно на один раз больше, чем нужно), в ослике все ок

в чем может быть проблема? опера 9.27
 

Nicholas

Новичок
if (xmlHttpLogin.readyState == 4 || xmlHttpLogin.status == 200)
Скорее всего лажа тут.

замените на
if (xmlHttpLogin.readyState == 4 && xmlHttpLogin.status == 200)
 
Сверху