2009-08-22 4 views
0

У меня возникли проблемы с кодом javascript, вызывающим мой php. Кто-нибудь видит ошибку в следующем коде? Я клянусь, я использую код так же, как это на другой части сайта ...basic xmlHttp question

var xmlHttp = createXmlHttpRequestObject(); 
var favSongArray = []; 

function createXmlHttpRequestObject(){ 
    var xmlHttp; 

    try{ 
    xmlHttp = new XMLHttpRequest(); 
    } 
    catch(e){ 
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0", 
           "MSXML2.XMLHTTP.5.0", 
           "MSXML2.XMLHTTP.4.0", 
           "MSXML2.XMLHTTP.3.0", 
           "MSXML2.XMLHTTP", 
           "Microsoft.XMLHTTP"); 

    for(var i = 0; i < XmlHttpVersions.length && !xmlHttp; i++){ 
    try{ 
     xmlHttp = new ActiveXObject(XmlHttpVersions[i]); 
    } 
    catch(e){} 
    } 
} 

if(!xmlHttp){ 
    alert("Error creating the XMLHttpRequest object."); 
} 
else{ 
    return xmlHttp; 
} 
} 


function process(){ 

    if(xmlHttp){ 
    alert("sever is available"); 
    //if yes try 
    try{ 

     xmlHttp.open("GET", "php/getUntimed.php", true); 
     xmlHttp.onreadystatechange = function(){handleRequestStateChange();}; 
     alert("attempted to call p_handleRequestStateChange_test"); 
     xmlHttp.send(null); 
    }//end try 
    catch(e){ 
     alert("Can't connect to server: \n" + e.toString()); 
    }//end catch 
    }//end if xmlHHttp 

}//end function 

function handleRequestStateChange(){ 
    if(xmlHttp.readyState == 4){ 

    if(xmlHttp.status == 200){ 
    try{ 
    u_handleServerResponse(); 
    }//end try 
    catch(e){ 
    alert("Error reading the response: " +e.toString()); 
    }//end catch 
}//end if 
else{ 
    alert("There was a problem retriving the data:\n" + xmlHttp.statusText); 
}//end else 
}//end if 
}//end function 

function u_handleServerResponse(){ 
//need to clear array each time 
var response = xmlHttp.responseText; 

favSongArray = response.split("+"); 
alert("made it here"); 
//getFlashMovie("trackTimer").trackTimer(favSongArray[0]); 
} 

процесс() вызывается из onSubmit триггера. Я продолжаю получать xmlHttp.status из нуля. Это имеет смысл для всех? Спасибо

+0

Вы используете Firebug? Получает ли сервер запрос? –

+0

Где будет отображаться этот firebug? – danwoods

+0

На вкладках сети или консоли. –

ответ

0

Почему бы вам не попробовать использовать рамки ajax? Например, jQuery.

3

status == 0 обычно означает, что она была прервана - либо нажатием ESC или путем изменения текущего адреса.

Или, так как вы используете глобальную xmlHttp, вы можете называть open и/или send до последнего запроса успел закончить. Не совсем уверен, какой из них, но один из них начинается с звонка abort.

1

Как Jonathan Lonowski says, status == 0 означает прерванный, и вы сказали, что выполнить этот сценарий onsubmit который бы вызвать форму, чтобы представить, таким образом, перезагрузите страницу и отбрасывание запрос Ajax. Посмотрите также here.

+0

Спасибо, я знал, что перезагрузка страницы возилась с ней как-то – danwoods