Im пытается URL кодировать адрес электронной почты в качестве параметра URL. Теперь, кажется, прямое использование jquery param доказывает, что меня больше путают, когда я иду.Двойное кодирование параметров URL
Вот что я пробую
var toEncode = {
'email': '[email protected]',
'name': 'something'
}
var newUrl = "http://www.example.com?" + $.param(toEncode);
window.location.href = newUrl;
я видел, что NEWURL правильно закодированы, но когда-то передается в адресной строке символ @% 2540% вместо 40. Где-то вдоль линии%% 40 снова зашифровывается, и я не могу показаться, что это не так.
Надежда есть свет в конце этой кроличьей дыры.
EDIT - Более подробную информацию
URL-адрес является растянутой на новый адрес и адрес электронной почты помещается в текстовое поле и показывает, как что-то% 40something.com
------- -SOLUTION -------- После нагрузок twiddling я нашел причину проблемы, modperl переписывал URL-адрес на сервере, поскольку флаг для отключения перезаписи URL-адресов не был отключен. Это вызвало encodeing случиться дважды, и, таким образом, причина% 2540
Если бы это было кодирующей процента знак, вы должны увидеть% 25% 40 вместо% 2540. 'newUrl' * * отсутствует протокол (http: //), но это не должно вызывать проблему, которую вы видите. Возможно, нам понадобится больше кода. –
Когда я сначала вызываю функцию параметра jquery и записываю строку, она закодирована вправо, что @ кодируется как% 40. Где-то вдоль линии%% 40 получает кодировку до% 25, поэтому его% 2540 – Ernie
Я думаю, что проблема связана с URL-адресом, к которому вы перенаправляетесь; он, вероятно, не расшифровал его должным образом. –