XMLHttpRequest всегда Status=0
Всем привет!
Проблема в следующем:
Я как пользователь захожу на URL/index.html
У меня в броузере отображается страничка, на которой
есть несколько кнопок. По onclick каждой из них вызывается
javascript функция, которая должна выполнить GET запрос
URL/file.php?list_of_parameters, получить ответ (file.php, распарсив
параметры, лезет в СУБД и получает в ответ XML ответ, который
возвращает тому, кто спрашивал) и отобразить этот ответ
на открытой страничке (без ей перезагрузки).
Для этой цели был выбран XMLHttpRequest.
Запрос уходит, доходит до сервера, СУБД регистрирует запрос
и выполняет свою работу исправно. Но... XMLHttpRequest.status
всегда равен 0...
Если же делать запрос через открытие нового окна, то проблем нет,
данные возвращаются и отображаются.
Код из программы:
// Создаём объект, если сможем...
>function createRequestObject() {
> if (typeof XMLHttpRequest === 'undefined') {
> XMLHttpRequest = function() {
> try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
> catch(e) {}
> try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
> catch(e) {}
> try { return new ActiveXObject("Msxml2.XMLHTTP"); }
> catch(e) {}
> try { return new ActiveXObject("Microsoft.XMLHTTP"); }
> catch(e) {}
> throw new Error("This browser does not support XMLHttpRequest.");
> };
> }
> return new XMLHttpRequest();
>}
// Пробуем выполнить запрос
>function doRequest(param){
> req = createRequestObject();
> if(req){
> req.open("GET", baseAddr + param, false);
> req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
> req.setRequestHeader("Cache-Control", "no-cache");
> req.overrideMimeType("text/plain; charset=x-user-defined");
> req.onreadystatechange = function() {
> if (req.readyState==4) {
> return(req.responseText);
> }
> }
> req.send(null);
> if(req.status == 200) {
> return("Status 200");
> }else{
> return("Status != 200");
> }
> }else{
> return("req = false");
> }
>}
// А это собстенно ф-ция, вызываемая по onclick
>function getBuild(){
> alert(doRequest("?get_build")); // alert только в тестовых целях!
>}
За неделю просмотрены сотни (а может и тысячи) сайтов и постов
на форумах. Везде одно и то же: должно работать...
Подскажите, пожалуйста, где "копать"? Может в приведённом коде
баг зарыт?
Последний раз редактировалось hfalcon, 18.11.2011 в 17:29.
|