Foros del Web » Programando para Internet » Javascript » Frameworks JS »

problema XMLHttpRequest

Estas en el tema de problema XMLHttpRequest en el foro de Frameworks JS en Foros del Web. Hola. Tengo poca idea de este tema. El caso es que estoy probando mi pagina.. y con internet explorer... funciona bien pero con Google chrome ...
  #1 (permalink)  
Antiguo 01/12/2010, 07:17
 
Fecha de Ingreso: noviembre-2010
Mensajes: 101
Antigüedad: 13 años, 4 meses
Puntos: 0
problema XMLHttpRequest

Hola.

Tengo poca idea de este tema. El caso es que estoy probando mi pagina.. y con internet explorer... funciona bien pero con Google chrome no.

No he puesto nada en mi script de mi pagina, pero sí en el php al que se conecta ajax:

Código PHP:
<?php

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest') {

$a=$_POST['content'];

?>

<h3>Comentario: <?php echo $a?></h3>
<?php

} else {
}
?>

Con este If no se ve el $a pero si quito el If se ve perfectamente en Internet explorer xD pero en Google chrome no...

entonces parece que tengo un problema con el XMLHttpRequest no?
  #2 (permalink)  
Antiguo 01/12/2010, 09:03
 
Fecha de Ingreso: noviembre-2010
Mensajes: 101
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: problema XMLHttpRequest

asi creo el objeto ajax:
Código PHP:
function makeHttpRequest() {
    
// Define http_request
    
var httpRequest;
    try 
    {
    
httpRequest = new XMLHttpRequest();// Mozilla, Safari, etc    
    
}
    catch(
trymicrosoft)
    {
        try
        {
            
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(
oldermicrosoft)
        {
            try
            {
                
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(
failed)
            {
                
httpRequest false;
            }
        }
    }
    if(!
httpRequest)
    {
        
alert('Your browser does not support Ajax.');
        return 
false;
    }
    
    
// Action http_request
    
httpRequest.onreadystatechange = function() 
    {
        if(
httpRequest.readyState == 4)
            if(
httpRequest.status == 200)
                
alert(httpRequest.responseText);
            else
                
alert('Request Error: '+httpRequest.status);    
    }
    
httpRequest.open('GET',document.location.href,true);
    
httpRequest.send(null);
            
}

</script> 


esta bien???
si tengo esto, como haria para llamar a ajax... asi?:

Código PHP:
$.httpRequest('POST','http://localhost/ajax.php',data,function(respuesta){ 
  #3 (permalink)  
Antiguo 03/12/2010, 02:40
 
Fecha de Ingreso: noviembre-2010
Mensajes: 101
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: problema XMLHttpRequest

alguien me ayuda? mis paginas funcionan en Internet Explorer, pero no en Firefox ni en Chrome

Ahora mismo tengo este codigo para crear el objeto ajax, pero no funciona:


Código PHP:
<script type="text/javascript" language="javascript">
function 
makeHttpRequest() {
    
// Define http_request
    
var httpRequest;
    try 
    {
    
httpRequest = new XMLHttpRequest();// Mozilla, Safari, etc    
    
}
    catch(
trymicrosoft)
    {
        try
        {
            
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(
oldermicrosoft)
        {
            try
            {
                
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(
failed)
            {
                
httpRequest false;
            }
        }
    }
    if(!
httpRequest)
    {
        
alert('Your browser does not support Ajax.');
        return 
false;
    }
    
    
// Action http_request
    
httpRequest.onreadystatechange = function() 
    {
        if(
httpRequest.readyState == 4)
            if(
httpRequest.status == 200)
                
alert(httpRequest.responseText);
            else
                
alert('Request Error: '+httpRequest.status);    
    }
    
httpRequest.open('GET',document.location.href,true);
    
httpRequest.send(null);
            
}

</script> 

lo tengo dentro de head.
  #4 (permalink)  
Antiguo 06/12/2010, 21:11
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: problema XMLHttpRequest

Primero que nada te pido una cosa: NO USES MAS AJAX SIN UN FRAMEWORK!!!!...porque no usar jquery??? mootools??? sabias que basta incluir un archivo js para que funcione todo????... Por favor parece que estamos en la edad de piedra y como soy bueno busque un codigo (ANTIQUISIMO) que lo tengo de recuerdo cuando usaba ajax sin un framework y me vienen a la memoria tantos dolores de cabeza con incompatibilidades entre navegadores que mejor ni hablamos...
En fin este fue el codigo que me funciono siempre en cualquier navegador...de hecho la web que hice nunca actualizo este codigo y te aseguro que hoy por hoy sigue andando en Firefox, IE y Chrome por lo menos...

aqui va:

Código:
function nuevoAjax()

{

var oHttp=false;

		var asParsers=["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", 

		"Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];

		for (var iCont=0; ((!oHttp) && (iCont<asParsers.length)); iCont++)

		{

			try

			{

				oHttp=new ActiveXObject(asParsers[iCont]);

			}

		    catch(e)

			{

				oHttp=false;

			}

		}



	if ((!oHttp) && (typeof XMLHttpRequest!='undefined'))

	{

		oHttp=new XMLHttpRequest();

	}

return oHttp;

}
Mira que facil seria con jquery:
(Y te aseguras que te anda en cualquier lado siempre y esta recontraaa probado por la gran comunidad que lo usa):

Código:
$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});
Salut!!!
  #5 (permalink)  
Antiguo 07/12/2010, 01:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: problema XMLHttpRequest

Cita:
Iniciado por sandinosaso Ver Mensaje
Primero que nada te pido una cosa: NO USES MAS AJAX SIN UN FRAMEWORK!!!!...
¡Menuda chorrada!

Cargar librerías innecesarias para hacer peticiones al server...
Sobre la pregunta, veo una creación del objeto ajax bastante más compleja de lo necesario:

Código:
function objetoAjax()	{
	if (window.XMLHttpRequest)
		_ajax = new XMLHttpRequest();
	else
		if (window.ActiveXObject)
			_ajax = new ActiveXObject("Microsoft.XMLHTTP");
		else
			_ajax = false;
	return _ajax;
}
Tal vez te sirva esta referencia: Destripando objetos Ajax

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 07/12/2010, 04:46
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Sonrisa Respuesta: problema XMLHttpRequest

Cita:
Iniciado por caricatos Ver Mensaje
¡Menuda chorrada!

Cargar librerías innecesarias para hacer peticiones al server...
Sobre la pregunta, veo una creación del objeto ajax bastante más compleja de lo necesario:

Código:
function objetoAjax()	{
	if (window.XMLHttpRequest)
		_ajax = new XMLHttpRequest();
	else
		if (window.ActiveXObject)
			_ajax = new ActiveXObject("Microsoft.XMLHTTP");
		else
			_ajax = false;
	return _ajax;
}
Tal vez te sirva esta referencia: Destripando objetos Ajax

Saludos
Jjajajajajaj muy comico caricatos.... pero no es una menuda chorrada... cargar una libreria para hacer peticiones unicamente obvio que es medio al pedo la idea es que si cargas jquery uses la mayoria de las funciones que te provee...yo de hecho no escribo una solo linea mas de javascript unicamente lo hago en jquery.

Además "cargar librerias innecesarias" ???... si la carga con la velocidad que tienen hoy las conexiones a internet y los propios navegadores ni se siente...
ademas te paso el paso de la libreria jquery en su version minificada y gzip:
PRODUCTION (26KB, Minified and Gzipped)
26 Kb!!!! te das cuenta lo que pesa practicamente nada !!! teniendo en cuenta que tu avatar pesa: 4,00 KB (4.096 bytes) no me parece una exageracion para todo lo que brinda.

Igual me parece que cada uno elige la opción que más le parece y se sienta cómodo usando, asi que mi mayor respeto a ud caricatos que tiene una amplia experiencia en esto....nada mas no me gusto la frase "menuda chorrada" me parece que no es el caso porque yo justifique la inclusión de jquery para lograr que el codigo de motorinapronto funcionase en todos los navegadores (DE ESTO ES LO QUE SE JACTA JQuery , de ser Cross-Browser)...y lo único que intente poner fue una alternativa para solucionar lo que le pasaba al usuario:
"alguien me ayuda? mis paginas funcionan en Internet Explorer, pero no en Firefox ni en Chrome
Ahora mismo tengo este codigo para crear el objeto ajax, pero no funciona:"

En fin....cada cual con lo que se sienta mas a gusto....igual recomiendo usar SIEMPRE Jquery porque lo que uno gana (CSS3 Compilant, Cross Browser ) justifica la inclusion del archivo del framework (unos 6 avatars de caricatos).


Sin intención de ofender a nadie y con el respeto que se merece esta es mi opinión.
Salutee!!!! ;)
  #7 (permalink)  
Antiguo 07/12/2010, 04:52
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: problema XMLHttpRequest

De paso muy buena tu web: http://www.caricatos.net/DOM/ajax.php esta todo muy bien explicado para iniciarse en ajax.

En cuanto al "veo una creacion del objeto ajax bastante mas compleja de lo necesario"...

La unica diferencia con lo que vi en tu web es que uso un array con las versiones del
objeto en las distintas versiones de IE...de esta forma anda en IE6, IE7..etc
Lo que hago es recorrer ese array y hacer un try-catch hasta que una version ande.

Salut!!!
  #8 (permalink)  
Antiguo 07/12/2010, 16:43
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: problema XMLHttpRequest

Hola:

La velocidad hoy en día, no es la misma en unas partes que en otras, además, siempre, siempre hay que intentar optimizar los sitios, y ¡carga innecesaria...!, desde luego que "hay que soltar lastre".

Lo demás que argumentas... poco fundamento... usar ajax es saber usar ese objeto... y en vez de cambiar y aprender a usar una librería, por la única necesidad de usar ajax, (matar moscas a cañonazos...); no crees que es más fácil aprender a usar ajax, simplemente: una simple declaración, un fichero adicional con la respuesta soilicitada, y programar la recepción...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 08/06/2012, 10:35
Avatar de SnakeCode  
Fecha de Ingreso: mayo-2012
Ubicación: Lima - Perú
Mensajes: 23
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: problema XMLHttpRequest

Holas, disculpen por abrir el tema, pero tengo un problema igual con incompatibilidad en Chrome, es un formulario que tiene el siguiente codigo Ajax:

Código:
   var http_request = false;
   var clicks	  = 0;
   function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('myspan').innerHTML = result;            
         } else {
            alert('Hubo un problema en la Solicitud.');
         }
      }
   }
   
   function get(obj) {
	    var varSex="";
		  if(document.getElementsByName("Sexo")[0].checked){
				varSex = document.getElementsByName("Sexo")[0].value;
		  }else if(document.getElementsByName("Sexo")[1].checked){
				varSex = document.getElementsByName("Sexo")[1].value;
			}else{
				varSex = "";
			}
      var poststr = "Nombre=" + encodeURI( document.getElementById("Nombre").value ) +
            "&Pais=" + encodeURI( document.getElementById("Pais").value ) +
			"&Telefono=" + encodeURI( document.getElementById("Telefono").value )+
			"&Correo=" + encodeURI( document.getElementById("Correo").value )+
			"&Sexo=" + encodeURI(varSex) +
			"&Edad=" + encodeURI( document.getElementById("Edad").value )+
			"&Permanencia=" + encodeURI( document.getElementById("Permanencia").value )+
			"&Fecha=" + encodeURI( document.getElementById("Fecha").value )+
			"&Encontro=" + encodeURI( document.getElementById("Encontro").value )+
			"&Comentarios=" + encodeURI( document.getElementById("Comentarios").value )+
			"&url=" + encodeURI( document.getElementById("url").value )+
			"&capt=" + encodeURI( document.getElementById("capt").value )+			  
			"&Submit=" + encodeURI( document.getElementById("Submit").value );
      makePOSTRequest('http://www.vivatoursperu.com/captcha/c-envio-solicitud.php', poststr);
   }

   function write_captcha(){
		define('Nombre', 'string', 'Nombre');
		define('Correo', 'email', 'E-mail');
		define('Pais', 'string', 'País');
		define('capt', 'string', 'Captcha');
   	clicks++;
   	document.getElementById('capt').value		= ''
	  document.getElementById('captcha_id').innerHTML = '<img src="http://www.vivatoursperu.com/captcha/captcha_img.php?clicks=' + clicks + '" border="0" alt="" /><a href="#" onclick="write_captcha();"><img src="http://www.vivatoursperu.com/captcha/png_bank/refresh.gif" border="0" alt="" /></a><br />Escribe los caracteres de la imagen';
   return false;
   }
Me funciona en Firefox, IE, Safari, Opera ... pero no en Chrome. No es mi codigo ni yo he desarrollado el website, pero me han mandado a revisar este website y el problema de porque no funciona el envio del formulario en Chrome. Gracias de antemano

Saludos

Etiquetas: ajax, xmlhttprequest
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:24.