xmlhttprequest send



Httpxmlrequest

Автор Антон Белый задал вопрос в разделе Другие языки и технологии

Проблемка с ассинхронными XMLHttpRequest() - запросами и получил лучший ответ

Ответ от Digital Brain[гуру]
все таки мельком посмотрел-кажись перемення xhrReadyFlag неявно обявлена во функции xmlHttp.onreadystatechange где пытаетесь ее во True поставить -но переменная то локальная -тоесть во функции request она всегда будет false....вот и зацикл. выходит.... я б в класс ето оформил лучше. . хоть я и не веб програмист- вот микромодуль моей портальной системы для юзания аджакс -все явно работает-на нем 50% сайта пашет=) увлекся сильно=( если не нада функция обратного виз. то я пишу обычно пустую-типа SendAJAXMsg(xmlHttp,'test.php','function(){}') ; п. с ето пашет во браузерах опера, ие, ФФокс 100% - в других или слишком старых надо искать аналогы ето обекта ...в некоторых ваще его нет... пока у мну юзеров не нашлося у кого непахал аджакс моего сайта - следовательно тужитсо ненадо... и так норм. . //-----------------------------Модуль-------------------------- function CreateAJAXConnection(){ var xmlHttp = false; if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { xmlHttp=new XMLHttpRequest(); return xmlHttp; } } function SendAJAXMsg(xmlHttp,url,func) { xmlHttp.open("GET", url, true); xmlHttp.onreadystatechange =func; xmlHttp.send(null); } function SendAJAXMsgPost(xmlHttp,url,func,msg) { xmlHttp.open("POST", url, true); xmlHttp.onreadystatechange =func; xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send(msg); } // тестовая функция function RecvMsg() { if(xmlHttp.status!=200){ alert("Ошибка однако "+HTTP.status); return; } if (xmlHttp.readyState == 4) { var response = xmlHttp.responseText; alert("ответ="+response); } }

Ответ от Ёергей Тихонов[эксперт]
зачем отправлять асинхронный запрос и блокировать процесс в ожидании ответа? лучше ведь показать какой-нибудь индикатор активности, а после получения ответа обновить страницу, используя callback. но если всё-таки оставлять запрос с блокированием процесса, то тогда есть синхронный запрос. для этого нужно в xmlHttp.open последний параметр установить в false: xmlHttp.open("POST", action, false); xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlHttp.send(params); alert(xmlHttp.responseText); // ответ уже здесь xmlHttp.open("GET", action + "?" + params, false); xmlHttp.send(null); alert(xmlHttp.responseText);

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Проблемка с ассинхронными XMLHttpRequest() - запросами
XMLHttpRequest на Википедии
Посмотрите статью на википедии про XMLHttpRequest
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*