Wie bereits erwähnt, haben Sie zwei Funktionen, um eine URL zu verschlüsseln:
encodeURI()
und
encodeURIComponent()
Der Grund dafür ist, dass der erste die URL beibehält und das Risiko besteht, dass zu viele Dinge nicht entkommen, während der zweite alles verschlüsselt, was benötigt wird.
Mit dem ersten könnten Sie die neu maskierte URL in die Adressleiste kopieren (zum Beispiel) und es würde funktionieren. Ihre nicht entkoppelten '&' würden jedoch Feldbegrenzer stören, die '=' würden Feldnamen und Werte stören und die '+' würden wie Leerzeichen aussehen. Bei einfachen Daten funktioniert dies jedoch, wenn Sie die URL-Natur Ihrer Escape-Daten beibehalten möchten.
Das zweite ist alles, was Sie tun müssen, um sicherzustellen, dass nichts in Ihrer Zeichenfolge mit einer URL interferiert. Es bleiben verschiedene unwichtige Zeichen unberührt, so dass die URL so störungsfrei wie möglich bleibt. Eine auf diese Weise codierte URL funktioniert nicht mehr als URL, ohne sie zu entfernen.
Wenn Sie sich also die Zeit nehmen können, möchten Sie immer encodeURIComponent () verwenden - bevor Sie Name / Wert-Paare hinzufügen, codieren Sie mit dieser Funktion sowohl den Namen als auch den Wert, bevor Sie ihn zur Abfragezeichenfolge hinzufügen.
Es fällt mir schwer, Gründe für die Verwendung von encodeURI () zu finden - das überlasse ich den klügeren Leuten.