Actualmente estoy configurando la propiedad window.location.pathname para redirigir al usuario a una URL relativa. La nueva dirección URL tiene parámetros, por lo que la línea de JavaScript se parece a esto:Configuración JavaScript window.location
window.location.pathname = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1) + 'myPage.xhtml?u=' + selected_user.Username;
Ésta es exitosa en Firefox, Chrome, sin embargo codifica el signo de interrogación con '% 3F' y la petición falla posteriormente.
No estoy seguro de si estoy usando window.location correctamente. ¿Debo usar propiedades de window.location como pathname o href? Descubrí que, tan pronto como establezco una propiedad, la ubicación se vuelve a cargar, por lo que, por ejemplo, las propiedades de la búsqueda y la ruta no se pueden configurar por separado. ¿Se puede establecer window.location directamente? Solo necesito establecer una URL relativa con un parámetro.
Gracias por la explicación detallada. Cambié mi código para usar la propiedad href y también para llamar a encodeURIComponent(). – Mark
Tenga en cuenta que [para la mayoría de los casos] (http://stackoverflow.com/questions/6725890/window-location-host-vs-window-location-hostname-and-cross-browser-compatibility), desea usar ' location.host' en lugar de 'location.hostname'. En resumen, esto se debe a que su código en algún momento puede ejecutarse en un servidor en un puerto que no sea 80. –
Tenga en cuenta que en el caso (raro) cuando la fuente es un iframe, entonces necesita hacer window.parent.location .. ... –