Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2012, 16:15   #1
sergeyrulit
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 53
По умолчанию httpRequest возвращаемая строка

Код HTML:
<script type="text/javascript" language="javascript">	
	
	var returnValue;
	
	function makeRequest(url, method, params) {
        var httpRequest = false;
		
        if (window.XMLHttpRequest) { 
            httpRequest = new XMLHttpRequest();
            if (httpRequest.overrideMimeType) {
                httpRequest.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) {
            try {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!httpRequest) {
            return false;
        }
		
		httpRequest.onreadystatechange = function(){

			if (httpRequest.readyState == 4) {
				if (httpRequest.status == 200) 
					returnValue = httpRequest.responseText;
			}
		}

		if (method == 'GET') {
			httpRequest.open('get', url + '?' + params, true);
		} else {
			httpRequest.open('post', url, true);
		}
		
		httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		if (method == 'POST') {
			httpRequest.send(params);
		} else {
			httpRequest.send(null);
		}
		
    }

	makeRequest("test.php", "POST", "test=test");
	alert(returnValue);
</script>
При вызове алерта, сообщение: undefined... Не пойму где ошибка
sergeyrulit вне форума Ответить с цитированием
Старый 06.01.2012, 16:59   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Потому что вы используете асинхронные вызовы
Код:
<script type="text/javascript" language="javascript">	

function makeRequest(url, method, params, callback) {
        var httpRequest = false;
		
        if (window.XMLHttpRequest) { 
            httpRequest = new XMLHttpRequest();
            if (httpRequest.overrideMimeType) {
                httpRequest.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) {
            try {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!httpRequest) {
            return false;
        }
		
		httpRequest.onreadystatechange = function(){

			if (httpRequest.readyState == 4) {
				if (httpRequest.status == 200) 
					callback(value); // вызываем нашу функцию обработчик
			}
		}

		if (method == 'GET') {
			httpRequest.open('get', url + '?' + params, true);
		} else {
			httpRequest.open('post', url, true);
		}
		
		httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		if (method == 'POST') {
			httpRequest.send(params);
		} else {
			httpRequest.send(null);
		}
		
}
    
    function requestHandler(value){
       alert(value);
   }
   makeRequest("test.php", "POST", "test=test", requestHandler); 
  // указываем нашу функцию в качестве callback, которая обрабатывает результаты
	
</script>
Cronos20 вне форума Ответить с цитированием
Старый 11.01.2012, 19:15   #3
sergeyrulit
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 53
По умолчанию

Спасибо! Работает)
sergeyrulit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строка Anna1993 Visual C++ 3 17.05.2011 15:23
строка morgan97 Паскаль, Turbo Pascal, PascalABC.NET 1 26.03.2011 23:16
Строка Евочка=) Помощь студентам 4 03.03.2011 13:08
Строка в БД NeVerSS БД в Delphi 3 12.09.2010 21:05
Строка состаяния или загрузачная строка Sergeu Мультимедиа в Delphi 8 27.08.2008 10:32