url参数的双重编码

时间:2014-12-16 20:54:28

标签: javascript jquery

我尝试将网址编码为url参数。 现在看起来似乎是jquery param的直接使用证明了我在进行时更加困惑。

这是我正在尝试的

var toEncode = {
                    'email': 'something@something.com',
                    'name': 'something'
               }

var newUrl = "http://www.example.com?" + $.param(toEncode);

window.location.href = newUrl;

我已经看到newUrl被正确编码但是一旦传递到地址栏,@符号是%2540而不是%40。沿着这条线的某个地方,%40的百分比再次被编码,我似乎无法计算出来。

希望这个兔子洞的尽头有光。

编辑 - 更多信息

网址是拉到新地址的,电子邮件地址放在一个文本框中,显示为%40something.com

-------- --------解 经过大量的讨论,我找到了导致问题的原因,modperl正在重写后端的url,因为禁用url重写的标志没有被禁用。 这导致编码发生两次,因此导致%2540

1 个答案:

答案 0 :(得分:1)

www.something.com是一个相对路径,您需要确保它包含协议:

newUrl = 'http://www.something.com?' + ...