2022.3.15学习日记
今天在进行JavaScript-Ajax对网页实时监测时,学习到了XMLHttpRequest类
首先上案例
注册界面
注册功能除了将数据接受用servlet储存进数据库外,还应当对使用者进行约束和要求。
如果只是简单的将一整篇满满的表格填满后,点击提交,用户数据的完整性和安全性就无法得到保障。比如说账号不能重复,密码必须有字母和数字,密码和确认密码必须相同,电话号码为11位数字等等。
所以JavaScript就是最好的“监视哨兵”。
其中最简单的就是每个标签下输入格式的限制了,因为HTML已经提供了pattern属性。
其次是密码和确认密码
function validata(){ var pw1 = document.getElementById("pw1").value; var pw2 = document.getElementById("pw2").value; if(pw1 == pw2) { document.getElementById("tishi").innerHTML="两次密码相同"; document.getElementById("submit").disabled = false; } else { document.getElementById("tishi").innerHTML="两次密码不相同"; document.getElementById("submit").disabled = true; } }
validata()的js方法对id为“tishi”的标签进行innerHTML输出,并限制提交按钮。(document.getElementById("").innerHTML="")
第三——也是今天的重点:使用Ajax
function checkUsername(){ var username=document.getElementById("username").value; if(username==null||username==""){ document.getElementById("yonghuming").innerHTML="用户名不能为空"; document.getElementById("submit").disabled = false; } else{ var xhr=new XMLHttpRequest(); var url="CheckNameWithAjax?username="+username; xhr.open("post",url,true); xhr.send(); xhr.onreadystatechange=function(){ if(xhr.readyState==4 && xhr.status==200){ var resText=xhr.responseText; if(resText=="true"){ document.getElementById("CheckUsername").innerHTML="该用户名可用"; } else{ document.getElementById("CheckUsername").innerHTML="该用户名已存在"; } } } } }
我们需要在用户编辑完用户名后直接给出格式问题,那么就需要在中添加属性——onbulr="checkUsername()" onbulr属性是用户将焦点移开此输入框后执行引号内的js方法。
XMLHttpRequest()类提供的方法有
open(method, url, async, username, password) |
method 参数是用于请求的 HTTP 方法。值包括 GET、POST 和 HEAD。 url 参数是请求的主体。大多数浏览器实施了一个同源安全策略,并且要求这个 URL 与包含脚本的文本具有相同的主机名和端口。 async 参数指示请求使用应该异步地执行。如果这个参数是 false,请求是同步的,后续对 send() 的调用将阻塞,直到响应完全接收。如果这个参数是 true 或省略,请求是异步的,且通常需要一个 onreadystatechange 事件句柄。 username 和 password 参数是可选的,为 url 所需的授权提供认证资格。如果指定了,它们会覆盖 url 自己指定的任何资格。 |
send(body) |
如果通过调用 open() 指定的 HTTP 方法是 POST 或 PUT,body 参数指定了请求体,作为一个字符串或者 Document 对象。如果请求体不适必须的话,这个参数就为 null。对于任何其他方法,这个参数是不可用的,应该为 null(有些实现不允许省略该参数)。 |
简单的知识点均来自XML DOM - XMLHttpRequest 对象 (w3school.com.cn)