Метод encodeURIComponent
заменяет все символы, кроме:
символов латинского алфавита, десятичных цифр и - _ . ! ~ * ' ( )
.
Чтобы избежать некорректных запросов к серверу, метод encodeURIComponent
следует вызывать на каждом введенном пользователем параметре, который будет передан как часть URI.
Например, пользователь может ввести "me&time=5" в переменной label
. Без использования encodeURIComponent
соответствующая компонента запроса будет иметь вид label=me&time=5
.
Вместо одного значения label
появилось два значения:
label=me
и time=5
.
Чтобы этого избежать, кодируйте данные перед передачей в URI:
label = 'me&you'
uri = uri + '&label=' + encodeURIComponent(label)
У меня в FireFox encodeUriComponent оставляет русские буквы русскими
URI у вас закодирован, но уже сам браузер декодирует его обратно, для наглядности, чтобы в адресной строке вы видели текст, а не текст %D0%2F ...
Что-то я не нашел в списке глобальных функций похожую на
encodeURIComponent функцию escape и обратную ей unescape. В чем разница между encodeURIComponent и escape?
Из своего опыта я заметил, к примеру, что escape кодирует пробел как %20, а если данные передаются из формы просто по submit, то пробел заменяется на '+'. Если применить unescape, то '+' не будет заменен на пробел (по крайней мере, в FireFox).
а что у нас с поддержкой мобильными браузерами?
Надо видно посидеть разобраться. Что-то я ничего пока не могу понять. Да к тому же не особо силён в программировании. Пойду читать азбуку.
Подскажите, а как при помощи JavaScript вычислить человека по IP?
посмеялся
вот продолжение:
Помогите разобраться.
Посылаю запрос формируя адрес так
если в переменной стоят знаки двоеточия ":", то выскакивает ошибка, 404. Если ставлю, например точки "a.b.c", то всё нормально работает.
Почему такая нелюбовь к двоеточиям?