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

Ajax no funciona cuando migro a Linux

Estas en el tema de Ajax no funciona cuando migro a Linux en el foro de Frameworks JS en Foros del Web. Hola amigos espero no molestar con esta pregunta porque no si son en realidad son pequeñas correcciones o configuraciones que mis connocimientos limitados no me ...
  #1 (permalink)  
Antiguo 17/02/2006, 13:52
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 20 años, 4 meses
Puntos: 0
Ajax no funciona cuando migro a Linux

Hola amigos espero no molestar con esta pregunta porque no si son en realidad son pequeñas correcciones o configuraciones que mis connocimientos limitados no me lo permiten.

Les explico: encontre este pequeño ejemplo en internet la cual me sirvio para hacer un pequeño modulo de ventas, todo marchaba bien en un servidor microsotf windows instale el paquete que trae el Appserv (php.Apache,mysql) todo funcionaba a la perfeccion hasta que una vez terminado el modulo, subi el codigo tal y como estaba al servidor que esta en una pc Sun (Sparc) con Linux debian y ahora sale un "Error del sistema: -1072896658"

Todo lo que hace es enviar la data inserta en la base de datos pero a ala hora de devolverme el resultado y pintarlo en el formuladio actual me sale dicho error.
Probe con el codigo original pensado que me habia equivocado al modificar algunas cosas pero sale lo mismo... ALGUIEN ME PUEDE AYUDAR A DAR SOLUCION A ESTE PROBLEMITA .. SE LOS VOY A AGRADECER....

Este es el formulario
Código HTML:
<html>
<body>
<script language="JavaScript" src="httprequest.js"></script>
<p>
  <input type="button" name="visual" value="Pedir datos" class="boton" onClick="probar_XMLHttpRequest()">
</p>
Texto: <input type="text" id="valor" />
XML: <input type='checkbox' id='xml' value="1" />
<table width="200" border="1">
  <tr>
    <td id='texto'>&nbsp;</td>
  </tr>
</table>
<p>&nbsp;</p>
</body>
</html> 
Este es el codigo PHP que devuelve el dato
Código PHP:
<?
if(!empty($_GET['xml'])) {
header('Content-type: text/xml');
echo 
"Seleccionaste xml\n";
}
if(
is_numeric($_GET['valor'])) {
    
header("HTTP/1.0 ".$_GET['valor']." me enviaste un número, simpático");
} else {
   echo 
"Respuesta: me enviaste el valor ".strip_tags($_GET['valor']);
    
}
?>
Este es el codigo de AJAX
Código:
function get_xmlhttp() {
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 enviar(xmlhttp,metodo,url,async,callback) {
 xmlhttp.open(metodo, url,async);
 xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4) {
   callback(xmlhttp)
  }
 }
 xmlhttp.send(null)
}

function probar_XMLHttpRequest() {
	xmlhttp=get_xmlhttp()
	var valor=document.getElementById("valor").value
	enviar(xmlhttp,"GET","ret.php?valor="+encodeURIComponent(valor),true,recibirRespuesta);
}
function recibirRespuesta(xmlhttp) {
	val=""
	for(i in xmlhttp) {
		try {
		val+="xmlhttp."+i+"="+xmlhttp[i]+"\n"
		} catch(e) {}
	}
	if(xmlhttp.status==404) {
		alert("Se supondría que esta página no existe")
	}
	//document.getElementById("cabecera").innerHTML=xmlhttp.getAllResponseHeaders();
	document.getElementById("texto").innerHTML=xmlhttp.responseText
	//document.getElementById("estatus").innerHTML=xmlhttp.status
	//document.getElementById("objeto").innerHTML=val
}
  #2 (permalink)  
Antiguo 18/02/2006, 11:35
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 10 meses
Puntos: 11
mmm... para mi no es AJAX... debe ser otra cosa...
el funcionamiento de ajax no depende del servidor, sino del Navegador
  #3 (permalink)  
Antiguo 18/02/2006, 16:40
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 20 años, 4 meses
Puntos: 0
Pero ten en cuenta que cuando mando datos el php llega hacer insert en mysql y solo al retornar a escribir nuevamente en el formulario sale el error de sistema cuando escribo
document.getElementById("texto").innerHTML=xmlhttp .responseText
y eso que es el mismo navegador donde abro la pagina IE 5.5
crees que el apche tenga algo que ver o tenga alguna restriccion ???
Hasta ahora me dijeron todos que no tiene que ver el servidor y todo debe correr en el usuario ... la verdad no entiendo que pasa.......
Ahhh la red de mi trabajo tiene proxy, tendra algo que ver??????
  #4 (permalink)  
Antiguo 18/02/2006, 18:29
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 10 meses
Puntos: 11
me parece que si...
  #5 (permalink)  
Antiguo 21/02/2006, 03:15
Avatar de gonzalezmfrank  
Fecha de Ingreso: julio-2005
Ubicación: Maracaibo - Venezuela
Mensajes: 266
Antigüedad: 19 años, 5 meses
Puntos: 0
Lo que se me ocurre es que revises los servicios que tengas asociados a Apache... revisa en la documentacion de apache.... si usas kde en tu maquina utiliiza Kpackage para ver los modulos de apache (libapache) si no usas Kde prueba con aptitude

Saludos

Frank
  #6 (permalink)  
Antiguo 21/02/2006, 15:42
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 20 años, 4 meses
Puntos: 0
hola gonzalezmfrank gracias por el interes, me puedes ayudar mas en ese tema, lo que pasa es que el servidor donde publico las web no tiene entorno grafico, todo es con linea de comandos...

Saludos,
  #7 (permalink)  
Antiguo 21/02/2006, 16:53
Avatar de gonzalezmfrank  
Fecha de Ingreso: julio-2005
Ubicación: Maracaibo - Venezuela
Mensajes: 266
Antigüedad: 19 años, 5 meses
Puntos: 0
Bueno.... ese error que te sale en el principio es todo el error ?... no hay mas mensajes ?
  #8 (permalink)  
Antiguo 21/02/2006, 16:58
Avatar de gonzalezmfrank  
Fecha de Ingreso: julio-2005
Ubicación: Maracaibo - Venezuela
Mensajes: 266
Antigüedad: 19 años, 5 meses
Puntos: 0
Si tu distro es Debian Sarge .... revisa www.esdebian.org alli puedes conseguir alguna informacion al respecto

Saludos. Frank

pd. sin embargo si tienes respuesta al anterior indicamelo tambien por aca y te ayudo a buscar una solucion
  #9 (permalink)  
Antiguo 22/02/2006, 08:37
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 20 años, 4 meses
Puntos: 0
Es el unico error que muestra:
Y explicitamente dice:

Código:
Linea : 59
Car : 2
Error: Error del sistema: -1072896658
Código: 0
Y cuando quito esta parte :
Código:
document.getElementById("texto").innerHTML=xmlhttp.responseText
Ya no sale ningun error.
Espero que con esto puedas darme otra pista mas de lo que pueda ser...hoy tratare de revisar la pagina de esdebian.org

Gracias
  #10 (permalink)  
Antiguo 22/02/2006, 09:03
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 10 meses
Puntos: 11
quisas no existe el ID texto... o se pierde por ahi... fijate bien eso...

<div id="texto"></div>
o
<input type=text id=texto name=texto >
  #11 (permalink)  
Antiguo 22/02/2006, 10:11
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 20 años, 4 meses
Puntos: 0
Creo que el innerHTML no es el problema ya que le puse document.getElementByID('texto').innerHTML = xmlhttp.status
y me escribio 200
document.getElementByID('texto').innerHTML = xmlhttp.getAllResponseHeaders();

Y tambien tengo respuesta, pero cuando le pongo =xmlhttp.ResponseText sale el error antes mecionado

Crees que esta funcion estara mal escrita

function recibirRespuesta(xmlhttp) {
val=""
for(i in xmlhttp) {
try {
val+="xmlhttp."+i+"="+xmlhttp[i]+"\n"
} catch(e) {}
}
if(xmlhttp.status==404) {
alert("Se supondría que esta página no existe")
}
//document.getElementById("cabecera").innerHTML=xmlh ttp.getAllResponseHeaders(); //responde
document.getElementById("texto").innerHTML=xmlhttp .responseText // sale error de sistema
//document.getElementById("estatus").innerHTML=xmlht tp.status // reponde 200
//document.getElementById("objeto").innerHTML=val // escribe en blanco
}

Gracias por la ayuda
  #12 (permalink)  
Antiguo 22/02/2006, 12:21
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 10 meses
Puntos: 11
mmm... yo trabajo asi...

function AJAX(){ //funcion que sirve para conectarse
var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
var ajax = false;
for(var i=0 ; !ajax && i<ajaxs.length ; i++){
try{ ajax = new ActiveXObject(ajaxs[i]); }
catch(e) { ajax = false; }
}
if(!ajax && typeof XMLHttpRequest!='undefined') {
ajax = new XMLHttpRequest();
}
return ajax;
}


function mostrar_combo(pagina,capa){
var ajax = AJAX();
if(!ajax){
alert("Error AJAX");
return false;
}
producto=document.frm.producto.value;
document.getElementById(capa).innerHTML = "Cargando...";

ajax.open("POST",pagina,true);
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
document.getElementById(capa).innerHTML=ajax.respo nseText;
}
}
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("producto="+producto);
if (producto==0)
{
document.getElementById("mostrar_tabla").innerHTML ="";
}
}
  #13 (permalink)  
Antiguo 24/02/2006, 10:00
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 20 años, 4 meses
Puntos: 0
Definitivamente es la configuracion del Apache o algo en el php.ini, porque utilizo tu script y me sale el mismo error, estuve buscando repuesta tambien en manuales de debian pero nada... casi estoy por tirar la toalla... :(
  #14 (permalink)  
Antiguo 24/02/2006, 10:14
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 10 meses
Puntos: 11
PHP no tiene nada que ver con este problema, no esta relacionado en lo absoluto.

Y Apache creo que tampoco es el culpable de tu desgracia, no veo ninguna razon para que te bloque los paquetes.
  #15 (permalink)  
Antiguo 24/02/2006, 20:45
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 10 meses
Puntos: 11
"Solo mira abajo para levantar a los que cayeron..."
  #16 (permalink)  
Antiguo 07/03/2006, 11:47
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 20 años, 4 meses
Puntos: 0
Crees que sea ya un problema de XML, me fije en el test para ver la conf de php.ini ( phpinfo() ) de un server HP(intel) y el que tiene errores SUN(Sparc) y el única diferencia que veo en el tema de XML es que en el HP solo hace referencia a:
XML Support=active
XML Namespace Support=active
EXPAT version = expat_1.95.7
Y en la SUN
Aparte de EXPAT version = expat_1.95.8

Hay otra que dice xmlrpc.
quice sesactivarlo a traves de php.ini pero no encuentro nada de eso.
Me pueden decir si esto tiene algo que ver
  #17 (permalink)  
Antiguo 11/03/2006, 11:56
Avatar de EliasBG  
Fecha de Ingreso: julio-2005
Mensajes: 10
Antigüedad: 19 años, 5 meses
Puntos: 1
Alternativa De Solución De Ajax

Hola puedes probar con esto: AJAXConn lo puedes ubicar en forosdelweb.com/showthread.php?t=373529
no pongo las www porque todavía no me permiten colocar enlaces.

me dices como te va y si solucionaste tu problema,


saludos

ElíasBG
  #18 (permalink)  
Antiguo 17/03/2006, 15:55
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola ElíasBG,

Te comento que el codigo funciona muy bien cuando esta con un servidor en una pc INTEL pero cuando lo subo a un servidor con SUN (microsystems - Tecnolog. Sparc) sale el mismo error que comento al inicio de este tema.
la unica diferencia en todo esto es el el hardware - Intel vs Sparc (SUN Blade100)
Espero que me puedas ayudar a averiguar que pasa
Gracias
  #19 (permalink)  
Antiguo 11/04/2006, 03:02
 
Fecha de Ingreso: abril-2006
Mensajes: 1
Antigüedad: 18 años, 8 meses
Puntos: 0
Aunque sea tarde, puede que a los demás que lleguen a este foro les ayude.

El problema cuando da "Error de sistema -infinito" suele ser el charset, que el AJAX en el IE 6 lo tiene un poco restrictivo.

Si estás mandando UTF-8 y no lo especificas, puede darte error también. En los servidores apache basta con meter una directiva adddefaultcharset UTF-8.

A mi por ejemplo, me fallaba si mandaba una cabecera "Content-type:text/html; charset= UTF-8"; es decir, con un espacio entre el igual y la U. El problema es que no reconocía el charset así. Quitando el espacio, dejó de dar error.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 06:39.