Home >Web Front-end >JS Tutorial >Detailed example of ajax access in js
This article mainly introduces relevant information to you about the detailed explanation of ajax access examples in native js. I hope that through this article you can master and understand this part of the content. Friends who need it can refer to it. I hope it can help everyone.
Detailed explanation of examples of ajax access in native js
Form form
Login name:
The event is triggered when the cursor is lost
function createXmlHttp() { var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp = new XMLHttpRequest(); } catch (e) { try {// Internet Explorer xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } return xmlHttp; } function infoCheck(){ var ename=document.getElementById("ename").value; var password=document.getElementById("password").value; var pwdConfirm=document.getElementById("pwdConfirm").value; if(password!=pwdConfirm){ alert("两次密码不统一"); return ; } //验证登录用户名是否存在,类似的可以验证手机号什么的 // 1.创建异步对象 var xhr = createXmlHttp(); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { // var data = new Function("return" + xhr.responseText)()//反序列化 var val=xhr.responseText; if(val==1){ document.getElementById("ch").innerHTML="重新设置名字"; document.getElementById("ename").focus(); return; }else{ document.getElementById("ch").innerHTML=""; } } } xhr.open("post", 'LoginController/checkEname?ename='+escape(encodeURIComponent(ename)), true); //发送 xhr.send(null); }
When returning xhr.responseText data, Chinese characters are garbled, which has not yet been resolved, so in order to maximize the performance, I let the background return is "0" or "1" to judge. The createXmlHttp() method in je has been taught by the teacher before, but I still don't understand it. Now I will copy it and write it. The function is realized. This is also the simplest version I have seen. To realize the original ajax, the entire ajax access process is relatively easy to understand. There is also a problem of garbled characters when submitting access data.
Solution to the problem of garbled characters in web projects
The overall web project that was started Submit in post mode, add the following encoding filter to the xml file
<filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 提交的时候 剩下的 小部分的乱码可以用编码在解码的方式获得正确数据 编码:'LoginController/checkEname?ename='+escape(encodeURIComponent(ename)) 解码:try { String str=URLDecoder.decode(ename, "utf-8"); ename=URLDecoder.decode(ename, "utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } 后面写入数据库的时候乱码问题,我个人先创数据库编码是utf8,项目的编码也是utf-8,避免其他的编码问题发生,在连接数据库的URL也加上 url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8 目前碰到的乱码问题已经解决(除开ajax返回数据乱码,这个目前没找到解决方案)
Let’s talk about the native js non-empty verification and button click submission function
<form action="LoginController/register" method="post" id="form"> 姓名:<input type="text" name="name" id="name"><br> 登录名:<input type="text" name="ename" id="ename" onblur="infoCheck()"> <font id="ch" name="ch"></font><br> 密码:<input type="password" name="password" id="password"><br> 密码确定:<input type="password" name="pwdConfirm" id="pwdConfirm"><br> <input type="button" value="注册" onclick="submitInfo()" > </form> function submitInfo(){ var name=document.getElementById("name").value; var ename=document.getElementById("ename").value; var password=document.getElementById("password").value; var pwdConfirm=document.getElementById("pwdConfirm").value; //针对空格和制表符的""能做到过滤 name=name.replace(/(^\s*)|(\s*$)/g, ""); ename=ename.replace(/(^\s*)|(\s*$)/g, ""); password=password.replace(/(^\s*)|(\s*$)/g, ""); pwdConfirm=pwdConfirm.replace(/(^\s*)|(\s*$)/g, ""); if(name.length==0||name==" "||name.langth=="undefined") { //alert(name.langth); //alert(111); alert("姓名为必填项"); return ; } if(ename.length==0||ename==" "||ename.langth=="undefined") { alert("登录名为必填项"); return ; } if(password.length==0||password==" "||password.langth=="undefined") { alert("密码为必填项"); return; } if(password!=pwdConfirm){ alert("两次密码不统一"); return ; } document.getElementById("form").submit(); }
Continue to add tiles and improve them later. All codes are in the simplest SSM integration connection address based on spring4., mybatis3. based on annotations. The code is continuously updated
Related Recommended:
A small example of Jquery accessing XML data through Ajax_jquery
Ajax access optimization in MVVM mode
The above is the detailed content of Detailed example of ajax access in js. For more information, please follow other related articles on the PHP Chinese website!