Ciao ragazzi,
ho questo semplice script AJAX per effettuare un banale login:
codice:
function asyncRequest() {
request = obtainXMLHttpRequest();
var useLink = true;
if( request ) {
useLink = false;
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
request.open("post", "core.php", true);
request.setRequestHeader("content-type", "application/x-www-form-urlencoded");
request.setRequestHeader("connection", "close");
request.onreadystatechange = function() {
alert("readyState: " + request.readyState);
alert("status: " + request.status);
if(request.readyState == 4) {
if(request.status == 200) {
alert(request.responseText);
if(request.responseText == "GO") {
window.location.replace("main.php");
}
} else {
//...
}
}
}
var append = "&";
request.send( "username=" + escape(username) + append +
"password=" + escape(password) + append +
"login=" + escape("") );
}
return useLink;
}
function obtainXMLHttpRequest() {
var
XHR = null,
browserUtente = navigator.userAgent.toUpperCase();
if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
XHR = new XMLHttpRequest();
else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
if(browserUtente.indexOf("MSIE 5") < 0)
XHR = new ActiveXObject("Msxml2.XMLHTTP");
else
XHR = new ActiveXObject("Microsoft.XMLHTTP");
}
return XHR;
}
non capisco perchè non funziona in Google Chrome vers. 23 (in altri browser funziona); ottengo readyState = 4, ma status = 0.
Spero che qualcuno mi saprà dare spiegazioni.