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

Ajax en mi lan desde internet

Estas en el tema de Ajax en mi lan desde internet en el foro de Frameworks JS en Foros del Web. Hola. Estoy realizando una aplicación SAS y para la fase de desarrollo lo estoy haciendo en un servidor local dentro de mi Lan. Puedo interactuar ...
  #1 (permalink)  
Antiguo 06/07/2009, 10:28
 
Fecha de Ingreso: mayo-2003
Mensajes: 55
Antigüedad: 21 años, 7 meses
Puntos: 1
Ajax en mi lan desde internet

Hola.
Estoy realizando una aplicación SAS y para la fase de desarrollo lo estoy haciendo en un servidor local dentro de mi Lan. Puedo interactuar con la web perfectamente pero en cuanto quiero acceder desde un equipo fuera de esta lan (a través de Internet) no puedo. Si que veo las páginas pero todo el Ajax deja de funcionar.

Por supuesto tengo el puerto 85 mapeado hacia la IP de mi servidor web e incluso he probado a poner explicitamente la ruta completa en los scripts java incluyendo el puerto 85 y tampoco: siempre dice que la respuesta XML no tiene valores.
El cortafuegos soft de esa máquina lo he parado para las pruebas y el problema persiste.

¿A que se puede deber?
Muchas gracias!!
__________________
Por que gastar el dinero cuando hay recursos gratuitos?
  #2 (permalink)  
Antiguo 06/07/2009, 20:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Ajax en mi lan desde internet

Habría que ver como es tu llamada AJAX, recuerda que AJAX tiene la limitante que solo puedes hacer requests hacia el mismo servidor y el mismo puerto.

Saludos.
  #3 (permalink)  
Antiguo 07/07/2009, 00:52
 
Fecha de Ingreso: mayo-2003
Mensajes: 55
Antigüedad: 21 años, 7 meses
Puntos: 1
Respuesta: Ajax en mi lan desde internet

Hola GatorV.

El servidor HTTP lo tengo montado en una máquina virtual funcionando en el puerto 85. Desde el ordenador anfitrión puedo trabajar con esa aplicación ajax sin ningún problema (también navegando desde la máquina virtual) pero en cuanto lo pruebo desde internet todo lo que es Ajax deja de funcionar, pero si que puedo hacer consultas mysql y acceder sin problemas a los contenidos de la web que no usan Ajax.
En los scripts de JS he probado a hacer rutas relativas (sin especificar el servidor ni puertos) y a escribir la ruta completa especificando ip y puerto y no funciona de ninguna manera.
No se donde puede estar el problema.

De hecho si en el explorador escribo la ruta del script ajax con los parámetros adecuados este devuelve el XML con los datos esperados.
__________________
Por que gastar el dinero cuando hay recursos gratuitos?
  #4 (permalink)  
Antiguo 07/07/2009, 16:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Ajax en mi lan desde internet

Como te comento sin ver como haces la petición HTTP por AJAX no te podría ayudar, te recuerdo las limitantes: mismo puerto y dominio, si haces la petición por otro puerto y dominio diferente al que estas viendo en la pagina actual te manda el error.

Saludos.
  #5 (permalink)  
Antiguo 16/07/2009, 00:15
 
Fecha de Ingreso: mayo-2003
Mensajes: 55
Antigüedad: 21 años, 7 meses
Puntos: 1
Respuesta: Ajax en mi lan desde internet

Hola, parece que de la noche a la mañana a empezado a funcionar bien con los scripts que tenía. De todas maneras y en señal de agradecimiento este es uno de los códigos que utilizo para Ajax:

// INICIO SCRIPTS AJAX
function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest();
} catch(err1) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (err2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err3) {
req = false;
}
}
}
return req;
}

var http = getXMLHTTPRequest();



// INICIO DEL BLOQUE PARA COMPROBAR CLAVE Y VALIDAR DATOS

function CambiarPss() {
id = document.getElementById('usu_id1').value;
c1 = document.getElementById('clave_nueva1').value;
var myurl = 'aj_cambiarclaveoperario.php';
myRand = parseInt(Math.random()*999999999999999);
var modurl = myurl+"?rand="+myRand+"&id="+id+"&clave="+c1;
http.open("GET", modurl, true);
http.onreadystatechange = Respuesta_CambiarPss;
http.send(null);
}

function Respuesta_CambiarPss() {
//document.getElementById('canvas').style.visibility ='visible';
if (http.readyState == 4)
{
if(http.status == 200)
{

document.getElementById('loading_canvas').style.vi sibility='hidden'; //Ocultamos la capa de carga
ca = document.getElementById('clave_actual1').value;
retorno = this.responseXML.getElementsByTagName("retorno")[0].childNodes[0].nodeValue;
if(retorno == 1)
{
//La clave proporcionada es correcta
alert("OK: la clave se ha cambiado correctamente");


}
else
{
//Ha habido un error al cambiar la clave
alert("MAL: ha habido un problema al cambiar la clave. Es necesario volver a intentarlo");

}


}
else
{
alert ("se ha producido un error");
}
}
else
{
document.getElementById('loading_canvas').style.vi sibility='visible'; //Mostramos la capa de carga
}
}


Ahora está funcionando completamente sin cambiar nada. De hecho he probado a cambiar el servidor web de puerto a otro distinto y también funciona.
__________________
Por que gastar el dinero cuando hay recursos gratuitos?
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 19:48.