前端用JQueryValidate的Remote Ajax方法验证邮箱,JSON传到后台SpringMVC的Controller中,@字符变成了%40,如何解决

u011013470 2017-08-11 02:45:54

前端JQuery Validate Remote后台验证email电子邮箱,后台是SpringMVC,JSON的email参数传到Controller中,@字符变成了%40

springmvc.xml配置文件






前端代码

"email" : {
required : true,
rangelength : [5, 100],
emailFormatCheck : true,
// 验证用户电子邮箱是否存在
remote : {
url : "user/checkAddEmail",
type : "POST",
async : false,
contentType: "application/json;charset=UTF-8",
dataType : "JSON",
data:{
email : function() {
return $("#email").val();
}
}
}
}


前端页面验证


后台代码:
/**
* @description 添加用户信息时,验证用户输入Email是否正确
* @param email
* @return
*/
@RequestMapping(value = "/checkAddEmail", method = RequestMethod.POST, headers = "Accept=application/json;charset=UTF-8")
@ResponseBody
public boolean checkAddEmail(@RequestBody String email) {
try {
if (null != email && !"".equals(email)) {
UserBase user = new UserBase();
user.setEmail(email.substring(email.indexOf("=") + 1).trim());
if (0 < userBaseService.findList(user).size()) {
return false;
} else {
return true;
}
} else {
return true;
}
} catch (Exception e) {
e.printStackTrace();
return true;
}
}

email电子邮箱JSON参数传入后台之后,接受的email的@字符变成了%40



contentType: "application/json;charset=UTF-8",

headers = "Accept=application/json;charset=UTF-8"

email = new String(email.getBytes("ISO-8859-1"), "UTF-8");

我用了这些转码的方法都尝试变了,也没有解决!

哪位大牛遇到过这个问题,知道这个问题是怎么回事,这个问题如何解决!

小弟在这里谢谢各位仁兄了!!!


...全文
1301 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
u011013470 2017-08-12
  • 打赏
  • 举报
回复
JSON.stringify($("#email").val());没有用 这个我早就试过了,传入后台的参数就变成这个了: email=%22beboyous%40126.com%22 谁能帮我解决一下这个问题呢???
北飞的企鹅 2017-08-11
  • 打赏
  • 举报
回复
这个就好像空格会转换成%20一样,百度下应该能查到 ,不行的话 你就自己把%40转换城@
李德胜1995 2017-08-11
  • 打赏
  • 举报
回复
JSON.stringify($("#email").val());即可。。。。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧