Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2010, 19:08
Avatar de Alun
Alun
 
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 4 meses
Puntos: 4
miRequest is not a function

Saludos:

miRequest is not a function

Ese es el mensaje que me tira el navegador al intentar enviar una petición al servidor mediante ajax.

Intento hacer una consulta a la base de datos para comprobar si el nik ó el correo electrónico ya están registrados, pero me aparece ese mensaje al intentar hacer la petición. El código es de lo más simple, estoy aprendiendo AJAX con AJAX, Javascript y PHP (Anaya) como manual, y mi código, salvo cambiarle un par de cosillas, no es muy diferente del código de ejemplo del libro. Aquí lo dejo:

Código Javascript:
Ver original
  1. var consulta = function getXMLHTTPREQUEST()
  2. {
  3.     var request = false;
  4.     if(window.XMLHTTPRequest)
  5.     {
  6.         request = new XMLHTTPRequest();
  7.     }
  8.     else
  9.         {
  10.             if(windows.ActiveXObject)
  11.             {
  12.                 try
  13.                 {
  14.                     request = new ActiveXObject("Msml2.XMLHTTP");
  15.                 }
  16.                 catch(err1)
  17.                 {
  18.                     try
  19.                     {
  20.                         request = new ActiveXObject("Microsoft.XMLHTTP");
  21.                     }
  22.                     catch(err2)
  23.                     {
  24.                         request = false;
  25.                     }
  26.                 }
  27.             }
  28.         }
  29.     return request;
  30. }
  31.  
  32.  
  33.  
  34. function preguntar(consulta_dato)
  35. {
  36. parámetro GET
  37. var uurl = "inc/consulta.php?consulta="+consulta_dato+"important="+parseInt(Math.random()*99999999);
  38. consulta.open("GET", uurl, true); //El fallo aparece aquí
  39. consulta.onreadystatechange = respuesta;
  40. consulta.send(null);
  41. }
  42.  
  43. function respuesta()
  44. {
  45.     if(request.readyState == 4)
  46.     {
  47.         if(request.status==200)
  48.         {
  49.             alert("De momento, bien");
  50.         }
  51.     }
  52.     else
  53.         {
  54.            
  55.         }
  56. }

Como podeis ver, no está terminado, me he encabezonado en sacarle el fallo, pero nada, no hay manera. Este es el formulario que lo activa:

Código HTML:
Ver original
  1. <form id="registro" name="registro" action="registr.php?validate=<?php echo $rand;?>" method="post" onSubmit="return validate(this);">
  2. <!--.....-->
  3. <label>Correo Electronico*</label><br><input type="text" name="mail" id="mail" onBlur="preguntar(document.registro.mail.value);"><br>
  4. <label>Nick*</label><br><input type="text" id="nick" name="nick" onBlur="preguntar(document.registro.nick.value);"><br>
  5. <!--.....-->
  6. </form>

Antes de asignar la función a la variable (var consulta = function getXMLHTTPRequest(){}) había intentado crear la función y luego asignarla a la variable (function getXMLHTTPRequest(){} /*...*/ var consulta = getXMLHHTPRequest;), pero me decía que dicha función no estaba definida (algo ilógico, ya que la he definido justo antes de asignarla. . .).

¿Por qué me dice que una función que yo he creado no es una función?

Gracias de antemano.