ďťż

[AJAX] IE -> Wyjątek przerzucony nie wyłapany

       

Podstrony


telcocafe

Oto kod mojej funkcji (Walidacja nicku):
function vnick(){ if(document.getElementById("nick").value != ''){ if(xmlHttp && (xmlHttp.readyState==4 || xmlHttp.readyState==0)){ try{ xmlHttp.open("GET", "vnick.php?nick="+document.getElementById("nick").value, true); xmlHttp.onreadystatechange = checknick(); xmlHttp.send(null); } catch(e){ throw(e.toString()); } } else{ setTimeout("vnick()", 500); } } }
Na pozór wszystko ok.. Ale IE (LOVE) znajduje tu błąd w linijce "catch(e){". Zaś gdy usuwam instrukcje Try-Catch znajduje go w linijce: "xmlHttp.send(null);" W jakikolwiek działający sposób zakładam obiekt activeX (MSXML2.XMLHTTP.4.0/MSXML2.XMLHTTP.3.0/MSXML2.XMLHTTP/Microsoft.XMLHTTP) To IE i tak wyrzuca błąd: "Niezgodność typów" Czy ma ktoś jakiś pomysł skąd to może się brać i jak to wyeliminować?



Typowy błąd. Do onreadystatechange przypisujesz funkcję. Źle. To ma być nazwa wywołująca tzw. native code. Po prostu usuń nawiasy.

Dzięki. Faktycznie. Teraz mam następny problem. Błąd: "Obiekt nie obsługuje tej metody" Jak obiekt xmlHttp może nie obsługiwać podstawowego responseText? :D
Kod:
function checknick(){ if(xmlHttp.readyState == 4){ if(xmlHttp.status == 200){ try{ nickuniq = xmlHttp.responseText; if(nickuniq=='1'){ document.getElementById("nickerr").innerHTML = "Podany nick jest wolny!<br />"; document.getElementById("nickerr").className = "free"; } else{ document.getElementById("nickerr").innerHTML = "Podany nick jest już zajęty!<br />"; document.getElementById("nickerr").className = "nofree"; } } catch(e){ if(debugMode){ alert('tu!'); alert("Błąd serwera: "+e.toString()); } else{ alert("Błąd serwera"); } } } else{ if(debugMode){ alert("Błąd serwera: "+xmlHttp.statusText); } else{ alert("Błąd serwera"); } } } else{ setTimeout("checknick();", 100); } }

Czemu wrzucasz to w blok wyjątku?
Jakiej przeglądarki używasz? Czy zmienna nickuniq jest zadeklarowana?



nie była zadeklarowana :D Już działa :) Dzięki :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.