2016-06-22 16 views
0

Ich versuche, zu einem URL-Pfad umzuleiten, der einen Abfrageparameter mit dem Namen next enthält, der selbst ein URL-Pfad ist, der eine Fragmentkennung enthält. Hier ist der JavaScript-Code Ich habe versucht:Eine Fragmentkennung innerhalb eines Abfrageparameters einfügen

window.location.href = "/gauth?next=" + window.location.pathname + "#onload=exportToDrive" 

Nur um mich klar, die #onload=exportToDrive soll den next URL-Pfad gehört (nicht die URL, die der Browser wird Umleitung). Wie kann ich diese Informationen im Browser angeben, damit diese Situation korrekt behandelt wird?

+0

Im Allgemeinen sollte der gesamte Wert des 'next' Parameters URL-codiert sein mit etwas wie [' encodeURIComponent() '] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenz/Global_Objects/encodeURIComponent). – robertklep

+0

@robertklep Arbeitete wie ein Charme! Vielen Dank! Wenn Sie Ihren Kommentar zu einer Antwort machen möchten, gebe ich Ihnen gerne eine positive Antwort und die angenommene Antwort :). – pzp

Antwort

1

Sie sollten immer URL-Parameterwerte korrekt codieren, unter Verwendung einer Funktion wie encodeURIComponent:

window.location.href = "/gauth?next=" + encodeURIComponent(window.location.pathname + "#onload=exportToDrive"); 

Dadurch wird sichergestellt, dass alle Fragmentbezeichner (aber auch String-Parameter abfragen) nicht zu /gauth gelten.