我有一个应用程序,需要签署表单数据之前,它被发送到服务器。在签名方法中,我必须用javascript转义所有表单输入值,对它们进行签名,然后将签名数据发送到服务器进行交叉匹配。远程服务器正在转义表单数据,以加号编码所有空格。
所以如果我的表单数据是:
this is test :)
编码输出应为
this+is+test+%3A)
但是我测试了javascript encodeuriccomponent, encodeURI和escape。它们都给出了以下输出:
this%20is%20test%20%3A)
谁知道哪个函数适合这个?
您可以直接自己进行替换:
var encoded = escape(s).replace(/%20/g, "+");
alert(encoded); // outputs "this+is+test+%3A)"