Attualmente sto impostando la proprietà window.location.pathname per reindirizzare l'utente a un URL relativo. Il nuovo URL dispone di parametri, in modo che la linea di JavaScript è simile al seguente:Impostazione JavaScript window.location
window.location.pathname = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1) + 'myPage.xhtml?u=' + selected_user.Username;
Questo è successo in Firefox, ma Chrome codifica il punto interrogativo con '% 3F' e la richiesta in seguito fallisce.
Non sono sicuro se sto utilizzando window.location correttamente. Devo usare le proprietà di window.location come pathname o href? Ho scoperto che non appena ho impostato una proprietà, la posizione viene ricaricata, quindi, ad esempio, le proprietà di ricerca e di percorso non possono essere impostate separatamente. È possibile impostare window.location direttamente? Ho solo bisogno di impostare un URL relativo con un parametro.
Grazie per la spiegazione dettagliata. Ho cambiato il mio codice per utilizzare la proprietà href e anche per chiamare encodeURIComponent(). – Mark
Si noti che [per la maggior parte dei casi] (http://stackoverflow.com/questions/6725890/window-location-host-vs-window-location-hostname-and-cross-browser-compatibility), si desidera utilizzare ' location.host' invece di 'location.hostname'. In breve, questo è dovuto al fatto che il codice a un certo punto può essere eseguito su un server su una porta diversa da 80. –
Nota che nel (raro) caso in cui l'origine è un iframe, allora deve fare window.parent.location .. ... –