问题描述:
今天做修改密码的时候发现:明明输入框输入的是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!