需要提交一个数字签名串,感觉数据量有点大,用的JQuery的Ajax方法的Post类型。结果问题来了,入库的数据签名无法还原,经比对是串中的“+”,被换成“ ”(空格)了,记得用form的get提交会引起该问题,看了一下代码,data中的传值方式如下, data:key1=value1&key2=value2,改为了 data:{key1:value1,key2:value2}的方式,就好了,不解。
看了一下JQuery,Ajax部分的源码,原来是 JQuery对于是string型的data,就不再处理,而对非string型的data再用&做连接的时候 做了替换处理,如下:s.join("&").replace(/%20/g, "+");,哦,原来如柴!
以后用js的机会很多,对于我这种对js只算得上一知半解的人,要多读一些成熟的js源码才行。