2012-02-19 8 views
5

No estoy seguro de si esto es realmente un problema de CodeIgniter o un problema del navegador. Esto sucede en Chrome, pero no en Safari. Sin embargo, supongo que no debería estar sucediendo en ningún navegador.¿Por qué CodeIgniter redirige no elimina el hash/pound (#) al final de la URL?

Si usted va a example.com/foo# que contiene

redirect('bar'); 

que se puede esperar a terminar en example.com/bar. En cambio, termina en example.com/bar#. No entiendo por qué el hash no desaparece. No tiene sentido. Que esta pasando?

Respuesta

5

no puede. La etiqueta hash solo es accesible mediante un script del lado del cliente. Code Igniter, PHP o cualquier otro script del lado del servidor ni siquiera sabrá lo que está detrás del signo #. La solicitud enviada al servidor es anterior al signo #. La parte posterior a #sign se pasa al documento para interpretar. Si hay un elemento con la identificación como el signo #, la página se desplaza hacia abajo. De lo contrario, js puede leerlo y hacer cosas con él como lo desee.

Además, una redirección HTTP transfiere la solicitud con los mismos parámetros que la página original, por lo que el hastag también se pasa en

10

Utilice el método de actualización si es necesario soltar el hash:

redirect('bar', 'refresh'); 
Cuestiones relacionadas