Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/09/2011, 12:42
augusto_jaramil
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 22 años, 4 meses
Puntos: 8
Pregunta Primiparo en AJAX.... cual es el error?

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.