Querystringparameters correct coderen
De tool heeft twee modi. Component (encodeURIComponent) is voor één parameternaam of -waarde; Volledige URL (encodeURI) is voor een complete URL waarvan de structuur al klopt. Ze door elkaar halen is de meest voorkomende oorzaak van kapotte querystrings.
Uitgewerkt voorbeeld
Volledige URL laat de & in de waarde staan, dus de server leest twee parameters in plaats van één.
- Invoer
- https://example.com/search?q=salt & pepper&page=2
- Resultaat ·
encodeURI() - https://example.com/search?q=salt%20&%20pepper&page=2
Parameters die een server leest
- "q" = "salt "
- " pepper" = ""
- "page" = "2"
Door de waarde eerst in de modus Component te coderen, blijft het één parameter.
- Invoer
- salt & pepper
- Resultaat ·
encodeURIComponent() - salt%20%26%20pepper
https://example.com/search?q=salt%20%26%20pepper&page=2
Parameters die een server leest
- "q" = "salt & pepper"
- "page" = "2"
Modus Component en Volledige URL per teken vergeleken
| Teken | Component | Volledige URL |
|---|---|---|
| : | %3A | : |
| / | %2F | / |
| ? | %3F | ? |
| # | %23 | # |
| & | %26 | & |
| = | %3D | = |
| + | %2B | + |
| ␠ | %20 | %20 |
| é | %C3%A9 | %C3%A9 |
Zo pakt de tool het aan
- Codeer elke parameternaam en -waarde afzonderlijk in de modus Component, die & = ? # + en / escapet.
- Voeg de gecodeerde paren samen als naam=waarde met & ertussen en zet het resultaat achter het ? in de URL.
- Gebruik Volledige URL alleen voor een hele URL: die modus laat : / ? # & = + ongemoeid en beschermt dus geen waarde die deze tekens bevat.