2012-02-19 9 views
5

Non sono sicuro che si tratti di un problema CodeIgniter o di un problema del browser. Questo accade in Chrome, ma non in Safari. Tuttavia, suppongo che non dovrebbe accadere in alcun browser.Perché il reindirizzamento CodeIgniter non rimuove l'hash/pound (#) alla fine dell'URL?

Se si va a example.com/foo# che contiene

redirect('bar'); 

ci si aspetta di finire in example.com/bar. Invece, si termina a example.com/bar#. Non capisco perché l'hash non scompaia. Non ha senso. Cosa sta succedendo?

risposta

5

non è possibile. Il tag hash è accessibile solo da uno script lato client. Code Igniter, PHP o qualsiasi altro script lato server non sapranno nemmeno cosa c'è dopo il segno #. La richiesta inviata al server è quella prima del segno #. La parte dopo #sign viene passata al documento da interpretare. Se c'è un elemento con ID come segno #, la pagina scorre verso il basso. Altrimenti, js può leggerlo e fare le cose con esso come desideri.

Inoltre, un reindirizzamento HTTP trasferisce la richiesta con gli stessi parametri della pagina originale, in modo che il HASTAG viene anche trasmessa

10

Utilizzare il metodo di aggiornamento, se hai bisogno di abbandonare l'hash:

redirect('bar', 'refresh'); 
Problemi correlati