关于get、post传递的参数存在特殊符号引发的问题

本文探讨了在前端输入包含特殊字符的密码时,由于未进行正确的编码处理,导致后端接收到的数据与实际输入不符的问题。通过使用JavaScript的encodeURIComponent()函数对密码进行编码,有效解决了因特殊字符引起的前后端数据不一致现象。

问题描述:

       今天做修改密码的时候发现:明明输入框输入的是Admin123&^5,可传入后台接收到的是:Admin123&^5,导致修改密码出现问题

明明输入框输入的是Admin123&^5,可传入后台接收到的是:Admin123&^5
在<input type="password" id="password" name="id">的输入框中输入“Admin123&^5”时,后台接收的数据为:Admin123&amp;^5

问题分析:特殊字符导致的,需要对参数进行编码处理

1.“+”号:js解析为字符串连接符,所以服务器端接收数据时“+”会丢失
2.“&”:  js解析为变量连接符,所以服务器端接收数据时&符号以后的数据都会丢失

 

问题解决:对传递的参数信息进行编码处理

js中用encodeURIComponent()对特殊符号进行编码处理。

var password = $("#password").val();//密码
$("#password").val(encodeURIComponent(password));//对密码进行编码处理,避免特殊字符导致后台接收数据不一致

经过测试,完全OK!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值