2010-06-18 7 views

Respuesta

12

La respuesta a esta pregunta es similar a la de/questions/774136. Básicamente, según el estándar @ faqs.org/rfcs/rfc1808.html (consulte la Sección 2.4.1) dice: "" Tenga en cuenta que el identificador de fragmento no se considera parte de la URL. " Como señaló" stephbu " , "la etiqueta ancla no se envía nunca como parte de la solicitud HTTP de ningún navegador, solo se interpreta localmente dentro del navegador".

1

La parte de ancla (después del #) no se envía a ninguna variable $ _SERVER en PHP. No sé si hay una forma de recuperar esa información de la URL o no (hasta donde sé, no es posible). Se supone que debe ser utilizado por el navegador solo para encontrar una ubicación en la página, por lo que la página no se recarga si hace clic en un ancla como: <a href="#hello">hello</a>

6

Las variables hash no se envían al servidor web en absoluto.

Por ejemplo, una solicitud para http://www.whatismyip.org/#test desde Firefox envía el paquete de petición HTTP seguimiento

GET/HTTP/1.1 
Host: www.whatismyip.org 
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 115 
Connection: keep-alive 
Cache-Control: max-age=0 

Se dará cuenta el # es en ninguna parte ser encontrado. Las páginas que ve usando # como una forma de navegación lo hacen a través de javascript. Este parámetro es accesible a través de la variable window.location.hash

+1

Ningún navegador del que sea consciente transmite la parte '# hash' de una URL a el servidor. – gnarf

Cuestiones relacionadas