Foros del Web » Estrategias Digitales y Negocios Online » Negocios »

Ajax funciona en Firefox, pero no en IE9 ni en Chrome

Estas en el tema de Ajax funciona en Firefox, pero no en IE9 ni en Chrome en el foro de Negocios en Foros del Web. Hola a todos, qué tal, Me encuentro desarrollando una aplicación Web en ajax, es de las primeras que hago, y aún me quedan algunas dudas ...
  #1 (permalink)  
Antiguo 27/08/2011, 06:17
Avatar de jja
jja
 
Fecha de Ingreso: diciembre-2010
Ubicación: BCN
Mensajes: 47
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Ajax funciona en Firefox, pero no en IE9 ni en Chrome

Hola a todos, qué tal,

Me encuentro desarrollando una aplicación Web en ajax, es de las primeras que hago, y aún me quedan algunas dudas por solventar.

Ahora mismo he programado una aplicación en PHP y MySql que actualiza el texto de un DIV con el de una columna de una tabla de la BBDD. Funciona correctamente en Firefox, pero en Internet Explorer 9 y Chrome no funciona por más combinaciones de objetos Ajax que he puesto.

Os copio a continuación el código que utilizo por si veis alguna irregularidad:

Esta es la página PHP que contiene el DIV con la que hago la consulta mediante ajax, como veis, cada 2 segundos realizo una consulta a BBDD:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
...
<body onLoad="setInterval('MostrarConsulta(\'consulta.php\')',2000);">
...
<div id="result"></div>
...
</html>
Esta sería la página javascript donde se encuentra la función "MostrarConsulta" que llama a la página consulta.php que realiza la llamada a la BBDD:

Código:
function objetoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
  		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function MostrarConsulta(datos){
	divResultado = document.getElementById('result');
	ajax=objetoAjax();
	ajax.open("GET", datos);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			divResultado.innerHTML = divResultado.innerHTML + ajax.responseText;
		}
	}
	ajax.send(null)
}
Y esta es la página consulta.php (aunque en ella no está el problema en principio):

Código:
...		
		include "conexion.php";
		$result=mysql_query("SELECT campo FROM tabla WHERE id=" . $id);
		while($row = mysql_fetch_array($result))
		{
			echo "<br/>" . $row["campo"];
		}
		include "cerrar-conexion.php";
...
Gracias de antemano, un saludo
  #2 (permalink)  
Antiguo 27/08/2011, 12:04
Avatar de jja
jja
 
Fecha de Ingreso: diciembre-2010
Ubicación: BCN
Mensajes: 47
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ajax funciona en Firefox, pero no en IE9 ni en Chrome

Analizando la página con el editor html de IE he visto que se produce el siguiente error cada 2 segundos, es decir tras cada consulta ajax:


SCRIPT5007: No se puede establecer valor de la propiedad 'innerHTML': el objeto es nulo o está sin definir
ajax.js, Línea 30 Carácter 4
__________________
El supremo arte de la guerra es someter al enemigo sin luchar.

Sun Tzu
  #3 (permalink)  
Antiguo 27/08/2011, 12:13
Avatar de jja
jja
 
Fecha de Ingreso: diciembre-2010
Ubicación: BCN
Mensajes: 47
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ajax funciona en Firefox, pero no en IE9 ni en Chrome

Solucionado. Se trataba de un problema de caché que es bastante conocido por lo visto de IE y Ajax, para solucionarlo, por si a alguien le pasa, solo tenéis que poner en los ficheros PHP la siguiente cabecera:

<?php
header("Cache-Control: no-store, no-cache, must-revalidate");
?>

gracias, saludos
__________________
El supremo arte de la guerra es someter al enemigo sin luchar.

Sun Tzu
  #4 (permalink)  
Antiguo 31/08/2011, 20:01
 
Fecha de Ingreso: marzo-2011
Mensajes: 14
Antigüedad: 13 años
Puntos: 0
Respuesta: Ajax funciona en Firefox, pero no en IE9 ni en Chrome

hola amigo pues yo tambien estoy aprendiendo ajax y me pasaba lo mismo al usar crome cuando yo hacia remotamenta actualizar la pagina para los usuarios la primera vez funcionaba bien ,pero cuando intentaba hacer otra vez ya no me funciona y en firefx me pasaba lo mismo pero probare tu codigo aver si con esto soluciono el problema.saludos

Etiquetas: ajax, chrome, firefox, ie9, javascript, mysql, php, select
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 03:07.