Sto provando l'uso dell'oggetto XMLHttpRequest attraverso il browser seguendo l'esempio presentato qui.
Ho diviso il codice in due parti. Questa è la prima (dichiarazione della variabile inclusa):
E questa la seconda, in pratica la sola funzione che lancia la richiesta al file lato server:codice:var req; function loadXMLDoc(url) { // branch for native XMLHttpRequest object if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(null); // branch for IE/Windows ActiveX version } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(); } } } function processReqChange() { // only if req shows "complete" if (req.readyState == 4) { // only if "OK" if (req.status == 200) { // ...processing statements go here... response = req.responseXML.documentElement; method = response.getElementsByTagName('method')[0].firstChild.data; result = response.getElementsByTagName('result')[0].firstChild.data; eval(method + '(\'\', result)'); } else { alert("There was a problem retrieving the XML data:\n" + req.statusText); } } }
Ho inserito la prima parte in un file js che ho incluso nella pagina html di prova, e la seconda direttamente nella pagina. Come mai separando in questo modo i frammenti di codice, e provando a dichiarare la variabile req o nel documento o nel js esterno, lo script non dà nessun risultato?codice:function checkName(input, response) { if (response != "") { // Response mode message = document.getElementById("nameCheckFailed"); if (response == "1") message.className = "error"; else message.className = "hidden"; } else { // Input mode url = "XMLHttpRequest.asp?q=" + input; loadXMLDoc(url); } }

Rispondi quotando