springboot-网站开发-如何规避和拒绝用户输入的空字符串!在网站开发过程中,前端用户的输入内容,经常会遇到有人故意输入字符串。导致一些异常的发生。
下面分享一下,我的应对方法。仅供参考。
前端html模板页面内,我做了一下js的判定,但是我感觉没有发挥作用。不知道什么原因,如果有懂的朋友,可以留言给我,谢谢。
/*1.对用户名进行验证*/
//当对象失去焦点触发验证流程
uname.onblur = function(){
if(this.validity.valueMissing){
this.nextElementSibling.innerHTML = '用户名不能为空';
this.nextElementSibling.className = 'msg-error';
this.setCustomValidity('用户名不能为空');
}else if(this.validity.tooShort){
this.nextElementSibling.innerHTML = '用户名不能少于2位';
this.nextElementSibling.className = 'msg-error';
this.setCustomValidity('用户名不能少于2位');
}else {
this.nextElementSibling.innerHTML = '用户名格式正确';
this.nextElementSibling.className = 'msg-success';
this.setCustomValidity('');
var data =$("#uname").val().replace(/\s+/g, '');
if(!data || isOnlySpaces(data)){ //用户没有输入任何内容
return;
}
/**发起异步GET请求,询问服务器用户名是否已经存在**/
$.ajax({
url:"../user/checkName",
//let filteredValue = inputValue.replace(/\s+/g, '');
data:"username="+$("#uname").val().replace(/\s+/g, ''),
type:"get",
dataType:"json",
success:function(obj){
$("#namespan").html(obj.message);//显示服务器的响应信息
if(obj.state==0){
$("#namespan").attr("class","msg-error");
}else{
$("#namespan").attr("class","msg-success");
}
}
});
}
}
这个地方做了判断,没有什么效果,照样会进入后端接口的执行。
2:还好,我也在后端接口里面做了判定。增加了如下代码。
这个是做了用户名字的验证。是否可用。从数据库内查询是否存在,如果不存在,就返回可以使用。
3:在真正的注册接口内,还做了第三次验证。
现在执行代码后,等用户在前端页面点击提交注册按钮后,反馈了一个不允许输入空字符。
说明,我前面2步骤都米有发生行为。到了第三步才发生了行为。
不管怎么说,问题是解决了。