Aby zakodować adres URL, jak powiedziano wcześniej, masz dwie funkcje:
encodeURI()
i
encodeURIComponent()
Powodem tego jest to, że pierwszy zachowuje adres URL z ryzykiem pozostawienia zbyt wielu rzeczy bez zmian, a drugi koduje wszystko, co potrzebne.
Za pomocą pierwszego możesz skopiować nowo ocalony adres URL do paska adresu (na przykład) i działałoby. Jakkolwiek twoje nieskalowane '&' 'zakłócałyby ograniczniki pól,' = 'zakłócałyby nazwy i wartości pól, a' + 'wyglądałyby jak spacje. Ale w przypadku prostych danych, gdy chcesz zachować charakter URL tego, co uciekasz, działa to.
Drugi to wszystko, co musisz zrobić, aby upewnić się, że nic w ciągu nie koliduje z adresem URL. Pozostawia różne nieistotne znaki bez zmian, dzięki czemu adres URL pozostaje jak najbardziej czytelny dla człowieka bez ingerencji. Zakodowany w ten sposób adres URL nie będzie już działał jako adres URL bez jego usunięcia.
Jeśli więc możesz poświęcić trochę czasu, zawsze chcesz użyć encodeURIComponent () - przed dodaniem par nazwa / wartość zakoduj zarówno nazwę, jak i wartość za pomocą tej funkcji przed dodaniem jej do ciągu zapytania.
Trudno mi wymyślić powody, by użyć encodeURI () - pozostawię to mądrzejszym ludziom.