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

Ajax y url amigables

Estas en el tema de Ajax y url amigables en el foro de Frameworks JS en Foros del Web. Esto realmente no lo entiendo: Yo tengo un sitio que se llama www.malaslenguas.net Normalmente funciono bien con el ajax, pero ahora le agregue las url ...
  #1 (permalink)  
Antiguo 18/07/2011, 22:11
 
Fecha de Ingreso: julio-2008
Mensajes: 45
Antigüedad: 15 años, 9 meses
Puntos: 1
Pregunta Ajax y url amigables

Esto realmente no lo entiendo:
Yo tengo un sitio que se llama www.malaslenguas.net
Normalmente funciono bien con el ajax, pero ahora le agregue las url amigables y se complico.
Por ejempo: en http://www.malaslenguas.net si hacen click en el boton LINK funciona perfecto .... pero en http://www.malaslenguas.net/523/Abracadabra hacen click en LINK .... pues se pudre todo.....
no se bien que le puede estar pasando.... obviamente tiene algo que ver la url amigable, pero no se como solucionarlo ... sospecho que hay que correjir algo en el ajax.
Mi Ajax es este:
Código HTML:
function llamarasincrono(url, id_contenedor)
{
	
    var pagina_requerida = false;
    if (window.XMLHttpRequest)
    {
        // Si es Mozilla, Safari etc
        pagina_requerida = new XMLHttpRequest ();
    } else if (window.ActiveXObject)
    {
        // pero si es IE
        try 
        {
            pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            // en caso que sea una versión antigua
            try
            {
                pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }
    } 
    else
    return false;
    pagina_requerida.onreadystatechange = function ()
    {
        // función de respuesta
        cargarpagina (pagina_requerida, id_contenedor);
    }
    pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
    pagina_requerida.send (null);
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina (pagina_requerida, id_contenedor)
{
    if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1))
		document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
	//else if(id_contenedor != "resultadoSugerencia")
	else if(id_contenedor == "contenido")
		document.getElementById (id_contenedor).innerHTML = '<table cellpading="0" border="0" width="600" class="titulo tituloMargenes"><tr><td align="center" bgcolor="#ffffff"><img src="imagenes/micelaneas/cargando.gif" style="margin:10px;"><br><font color="#810504">CARGANDO</font></td></tr></table>';
	//si lo que estoy llamando es a inicio hago que el scroll vaya arriba
	window.document.body.scrollTop = 0;
	window.document.documentElement.scrollTop = 0;
}
y la rewriteRule es este

RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]+)/(.*)$ index.php?ID=$1 [L]

Ojala alguien me pueda ayudar!, muchas gracias
  #2 (permalink)  
Antiguo 19/07/2011, 20:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Ajax y url amigables

eso se debe a que has configurado tu server con una sola regla, o tantas reglas de empate que tengas, y lo usual es que en tus peticiones hacia AJAX te refieras directamente al archivo, por lo que también podrías crear reglas para las peticiones AJAX.

si no puedes hacerlo, tienes la opción de que tu servidor no empate la url si es que coincide con un archivo verdadero (recuerda que el objetivo de las url amigables es proporcionar url ficticias), y eso lo puedes lograr en apache con:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
(tus reglas)


PD: a lo sumo en los links de tus Assets (archivos de imagen, css, js, y links hacia peticiones ajax) debes de anteponer un "/", para hacer referencia al inicio del site, y si está compartido el nombre del mismo, ejemplo:

pagina_requerida.open ('GET', '/'+url, true);
pagina_requerida.open ('GET', '/misitio_compartido/'+url, true);
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 02/08/2011 a las 22:48 Razón: gramática
  #3 (permalink)  
Antiguo 01/08/2011, 13:46
 
Fecha de Ingreso: julio-2008
Mensajes: 45
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ajax y url amigables

Genial!!!!
muchisimas gracias!!!!
lo que me sirvio fue esto:
pagina_requerida.open ('GET', '/'+url, true);

aunque como me habias dicho, las imagenes sin url completa las perdi, pero por suerte eran pocas .....

igualmente queda todo raro, porque la url no se refresca .... pero es logico .....
no se bien que hacer al respecto, es decir, me parece que no es una buena combinacion entre ajax y url amigables la que quedo.
Pero bueno, por lo menos no tiene el errorr

Hubiese preferido correjirlo con esto:
RewriteCond %{REQUEST_FILENAME} !-f
pero no se porque no me funciono

Muchas gracias!!!

Etiquetas: ajax, rewriterule
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 10:50.