Показать сообщение отдельно
  #1 (permalink)  
Старый 02.11.2011, 00:55
Интересующийся
Отправить личное сообщение для EvgeniyRRU Посмотреть профиль Найти все сообщения от EvgeniyRRU
 
Регистрация: 30.09.2011
Сообщений: 14

Достать результат выполнения ajax-запроса из функции
Добрый вечер, уважаемые участники форума. Возник вопрос, никак не могу понять с чем это дело есть.
Задача: в странице регистрации после проверки регуляркой корректности адреса электронной почты производится ajax-запрос, который отправляет на сервер введённый в поле ввода адрес е-мэйла, а сервер выдаёт результат (допустим 1, если такого адреса в базе данных нет и 2, если адрес в базе данных есть). Вот код:

function ajaxCheckEmail(email) {
//отправляем ajax-запрос на сервер для проверки существования адреса e-mail в базе данных
	var req = getXmlHttp();//создаём AJAX объект
		req.open('GET', 'http://sofakos.ru/registration.php?email=' + email, true);
		req.onreadystatechange = function() {
			if (req.readyState == 4) {
				if (req.status == 200) {
					window.acEmailResult = req.responseText;//записываем в глобальную переменную
				}
				
			}
		}
		req.send(null);
return window.acEmailResult;


FierBug показывает, что запрос отправляется, ответ от сервера корректный. Но вот беда, функция ajaxCheckEmail() выдаёт при певом вызове 'undefined', хотя должен быть 1 или 2. Также может перепутаться результат, хотя сервер отвечает корректно.
Проблема, как я понимаю, в глобальной переменной. А как тогда написать код потолковее, чтобы из обработчика асинхронного запроса возвращался корректный результат???
Ответить с цитированием