Próbuję wykonać niektóre AJAX i muszę wiedzieć, dlaczego ten kod nie uruchamia zakończonego lub błąd powiadomienia. Jestem w Mozilla Firefox 20.0.1JavaScript XMLHttpRequest.onreadystatechange
UWAGA
Ten kod JEST aktualizowanie bazy danych (Mam select czytanie dokładną weryfikacją rekord to uaktualnienie) Jestem nie jestem pewien, dlaczego nie mogę uzyskać ostrzeżenia po zakończeniu odpowiedzi.
Mam te GLOBALNE (u góry strony javascript) zadeklarowane zmienne.
var AjaxEnginePage;
var ClientInfoPage;
var XMLHTTP;
AjaxEnginePage = "AjaxEngine.aspx";
ClientInfoPage="getClientInfo.aspx";
Tworzenie połączenia.
//Creating and setting the instance of appropriate XMLHTTP Request object to a “XmlHttp” variable
function CreateXMLHTTP()
{
try
{
XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc)
{
XMLHTTP = null;
}
}
//Creating object in Mozilla and Safari
if(!XMLHTTP && typeof XMLHttpRequest != "undefined")
{
XMLHTTP = new XMLHttpRequest();
}
}
Wiązanie połączenia:
function btnUpdateMe_OnClick() {
var me = encodeURIComponent(document.getElementById("MeTextBox").value);
// construct the URL
var requestUrl = AjaxEnginePage + "?Action=UpdateMe&Me=" + me;
CreateXMLHTTP();
// If browser supports XMLHTTPRequest object
if(XMLHTTP)
{
//Setting the event handler for the response
XMLHTTP.onreadystatechange = handleStateChange(me);
//Initializes the request object with GET (METHOD of posting),
//Request URL and sets the request as asynchronous.
XMLHTTP.open("get", requestUrl, true);
//Sends the request to server
XMLHTTP.send(null);
}
Handle State Zmień
function handleStateChange(me) {
switch (XMLHTTP.readyState) {
case 0: // UNINITIALIZED
case 1: // LOADING
case 2: // LOADED
case 3: // INTERACTIVE
break;
case 4: // COMPLETED
alert("Success");
break;
default: alert("error");
}
mogę zapewnić więcej kodu w razie potrzeby. . :(dzięki
Z tej linii. , 'XMLHTTP.onreadystatechange = handleStateChange (me);', od razu wywołujesz 'handleStateChange' i zwracasz jego wartość zwracaną do' onreadystatechange' (nic nie zwraca, więc zwracana jest wartość 'undefined'). 'onreadystatechange' oczekuje odniesienia do funkcji. Ponadto przekazujesz 'me', ale nie używasz go w funkcji' handleStateChange'. – Ian
Zdaję sobie sprawę i przepraszam za nieużywanie mnie, chciałem to usunąć. – Kulingar
Nie trzeba przepraszać, po prostu myślałem, że to wskażę. Ponieważ nie jest używany w funkcji, łatwiej jest naprawić problem. Jeśli byłaby potrzebna, musisz dodać trochę więcej – Ian