Hola amigos foreros....
Estoy recien incursionando en el mundo de AJAX guiado por un manual.
Probando un ejercicio no me ha dado la respuesta esperada
Este es el codigo
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1-transitional.dtd">
<html>
<head>
<title>Ejemplo02 AJAX</title>
<script type="text/javascript">
var net = new Object();
net.READY_STATE_UNINITIALIZED = 0;
net.READY_STATE_LOADING = 1;
net.READY_STATE_LOADED = 2;
net.READY_STATE_INTERACTIVE = 3;
net.READY_STATE_COMPLETE = 4;
net.CargadorContenidos = function(url, funcion, funcionError) {
this.url = url;
this.req = null;
this.onload = funcion;
this.onerror = (funcionError) ? funcionError : this.defaultError;
this.cargaContenidoXML(url);
}
net.CargadorContenidos.prototype = {
cargaContenidoXML:function(url) {
if (window.XMLHttpRequest) {
this.req = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
this.req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (this.req) {
try {
var loader = this;
this.req.onreadystatechange = function () {
loader.onReadyState.call(loader);
}
this.req.open('GET', url, true);
this.req.send(null);
} catch(err) {
this.onerror.call(this);
}
}
},
onReadyState:function () {
var req = this.req;
var ready = this.readyState;
if (ready == net.READY_STATE_COMPLETE) {
var httpStatus = req.status;
if (httpStatus == 200 || httpStatus == 0) {
this.onload.call(this);
}
else {
this.onerror.call(this);
}
}
},
defaultError:function () {
alert ("Se ha producido un error al obtener los datos: "
+ "\n\n readyState: " + this.req.readyState
+ "\n Status: " + this.req.status
+ "\n headers: " + this.req.getAllResponseHeaders());
}
}
function mostrarContenido() {
alert(this.req.responseText);
}
function cargaContenidos() {
var cargador = new net.CargadorContenidos("http://localhost/ajax/holamundo.txt", mostrarContenido);
}
window.onload = cargaContenidos;
</script>
</head>
<body>
</body>
</html>
El problema que he detectado y no se como resolver es el siguiente:
En la funcion
Código PHP:
onReadyState:function () {
var req = this.req;
var ready = this.readyState;
if (ready == net.READY_STATE_COMPLETE) {
var httpStatus = req.status;
if (httpStatus == 200 || httpStatus == 0) {
this.onload.call(this);
}
else {
this.onerror.call(this);
}
}
},
la variable
ready al hacer un alert aparece como indefinida y supongo que si la condicion
if (ready == net.READY_STATE_COMPLETE) no se cumple se iria por el
else { this.onerror.call(this) pero tampoco la ejecuta...
Me podrian ayudar a resolverlo?
Mil Gracias de antemano
Un Cordial Saludo.