por - recuperar valor url javascript
¿Por qué la codificación url de la primera barra después del dominio rompe la url? (1)
Salvete! Descubrí que una cierta forma de codificación de URL rompe el enlace. Para el registro %2f
representa el carácter de barra diagonal: /
Ahora, considere esto: Enlace original: http://dottech.org/95285/this-is-the-pacific-barreleye-a-fish-with-a-transparent-head-amazing-photo-of-the-day
javascript ( encodeURIComponent
) urlencoded link: http://dottech.org%2f95285%2fthis-is-the-pacific-barreleye-a-fish-with-a-transparent-head-amazing-photo-of-the-day
Ahora, si pega el enlace codificado en la barra de direcciones de su navegador, se rompe (Firefox, Chrome, IE).
Sin embargo, si no codifica en la URL la primera barra diagonal, funciona perfectamente: '' http://dottech.org/95285%2fthis-is-the-pacific-barreleye-a-fish-with-a-transparent-head-amazing-photo-of-the-day
¿Por qué?
El /
es un personaje reservado. No es equivalente a %2f
. Si necesita la barra sin su significado definido, usaría la forma codificada.
Ver RFC 3986: "Caracteres reservados" :
El objetivo de los caracteres reservados es proporcionar un conjunto de caracteres delimitadores que se distingan de otros datos dentro de un URI. Los URI que difieren en el reemplazo de un carácter reservado con su correspondiente octeto con porcentaje de codificación no son equivalentes. El porcentaje de codificación de un carácter reservado o la decodificación de un octeto con porcentaje de codificación que corresponde a un carácter reservado cambiará la manera en que la mayoría de las aplicaciones interpretan el URI.
El motivo por el que la URL mencionada sigue funcionando si no utiliza la char reservada /
para la segunda barra inclinada: su CMS simplemente busca la parte ID en la URL. Para que pueda agregar lo que quiera a la URL, por ejemplo, lo siguiente debería funcionar:
http://dottech.org/95285/hey-this-URL-got-featured-at-
(Sin embargo, parece que todavía tiene que ser /
o %2f
en su caso).
Si lo intentas con un artículo de Wikipedia, lo redirige a la página principal:
http://en.wikipedia.org/wiki%2fStack_Overflow