Ajax传值丢失问题

使用Ajax传送数据时,当数据中存在加号(+)、连接符(&)或者百分号(%)时,服务器端接收数据时会丢失数据。分析Ajax传送数据的格式与Javascript的语法:

 

1. "+"号:JavaScript解析为字符串连接符,所以服务器端接收数据时"+"会丢失变空格。

2. "&"号:JavaScript解析为变量连接符,所以服务器端接收数据时&符号以后的数据都会丢失变空格。

 

解决方法是通过正则表达式进行编码替换(假设postStr是你想通过ajax传送的数据字符串)

 

Js代码  

postStr = postStr.replace(/%/g, "%25");  

postStr = postStr.replace(/\&/g, "%26");  

postStr = postStr.replace(/\+/g, "%2B"); 

 

附上编码表:

 

backspace8%A41%a61%§%A7Õ%D5 
tab9%B42%b62%«%ABÖ%D6 
linefeed%0AC43%c63%¬%ACØ%D8 
creturn%0DD44%d64%¯%ADÙ%D9 
space20%E45%e65%º%B0Ú%DA 
!21%F46%f66%±%B1Û%DB 
"22%G47%g67%ª%B2Ü%DC 
#23%H48%h68%,%B4Ý%DD 
$24%I49%i69%µ%B5Þ%DE 
%25%J%4Aj%6A»%BBß%DF 
&26%K%4Bk%6B¼%BCà%E0 
'27%L%4Cl%6C½%BDá%E1 
(28%M%4Dm%6D¿%BFâ%E2 
)29%N%4En%6EÀ%C0ã%E3 
*%2AO%4Fo%6FÁ%C1ä%E4 
+%2BP50%p70%Â%C2å%E5 
,%2CQ51%q71%Ã%C3æ%E6 
-%2DR52%r72%Ä%C4ç%E7 
.%2ES53%s73%Å%C5è%E8 
/%2FT54%t74%Æ%C6é%E9 
030%U55%u75%Ç%C7ê%EA 
131%V56%v76%È%C8ë%EB 
232%W57%w77%É%C9ì%EC 
333%X58%x78%Ê%CAí%ED 
434%Y59%y79%Ë%CBî%EE 
535%Z%5Az%7AÌ%CCï%EF 
636%      ð%F0 
737%?%3F{%7BÍ%CDñ%F1 
838%@40%|%7CÎ%CEò%F2 
939%[%5B}%7DÏ%CFó%F3 
:%3A\%5C~%7EÐ%D0ô%F4 
;%3B]%5D¢%A2Ñ%D1õ%F5 
%3C^%5E£%A3Ò%D2ö%F6 
=%3D_%5F¥%A5Ó%D3÷%F7 
%3E`60%|%A6Ô%D4ø%F8 
        ù%F9 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值