问题描述:
今天做修改密码的时候发现:明明输入框输入的是Admin123&^5,可传入后台接收到的是:Admin123&^5,导致修改密码出现问题
明明输入框输入的是Admin123&^5,可传入后台接收到的是:Admin123&^5
在<input type="password" id="password" name="id">的输入框中输入“Admin123&^5”时,后台接收的数据为:Admin123&^5
问题分析:特殊字符导致的,需要对参数进行编码处理
1.“+”号:js解析为字符串连接符,所以服务器端接收数据时“+”会丢失
2.“&”: js解析为变量连接符,所以服务器端接收数据时&符号以后的数据都会丢失
问题解决:对传递的参数信息进行编码处理:
js中用encodeURIComponent()对特殊符号进行编码处理。
var password = $("#password").val();//密码
$("#password").val(encodeURIComponent(password));//对密码进行编码处理,避免特殊字符导致后台接收数据不一致
经过测试,完全OK!
本文探讨了在前端输入包含特殊字符的密码时,由于未进行正确的编码处理,导致后端接收到的数据与实际输入不符的问题。通过使用JavaScript的encodeURIComponent()函数对密码进行编码,有效解决了因特殊字符引起的前后端数据不一致现象。
1万+

被折叠的 条评论
为什么被折叠?



