Maison > Article > interface Web > Exemple détaillé d'accès ajax en js
Cet article vous présente principalement des informations pertinentes sur l'explication détaillée des exemples d'accès ajax en js natif. J'espère qu'à travers cet article, vous pourrez maîtriser et comprendre cette partie du contenu. Les amis qui en ont besoin pourront s'y référer. j'espère que cela pourra aider tout le monde.
Explication détaillée d'exemples d'accès ajax en js natif
Sous formulaire
Nom de connexion :
L'événement est déclenché lorsque le curseur est perdu
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); }
Lors du retour des données xhr.responseText, le chinois a tronqué les performances, ce qui n'a pas encore été résolu, donc afin de conserver les performances, j'ai laissé l'arrière-plan renvoyer "0" ou "1" pour jugement. La méthode createXmlHttp() dans je a déjà été enseignée par le professeur, mais je ne la comprends toujours pas. Je vais l'écrire comme ceci. La fonction est implémentée. C'est aussi la chose la plus simple que j'ai vue. La version implémente l'ajax d'origine est relativement facile à comprendre. accéder aux données
Solution au problème des caractères tronqués dans les projets Web
Démarrer le Web L'ensemble du projet est soumis en mode post et les filtres d'encodage suivants sont ajoutés au fichier XML
<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返回数据乱码,这个目前没找到解决方案)
Parlons des fonctions de vérification non vide js native et des fonctions de soumission par clic sur le bouton
<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(); }Continuez à ajouter des tuiles et à améliorer, tous les codes sont dans le précédent spring4. basé sur les annotations, mybatis3 L'adresse de connexion d'intégration SSM la plus simple, le code est continuellement mis à jourRecommandations associées :
.
Un petit exemple de Jquery accédant aux données XML via Ajax_jquery
Optimisation de l'accès Ajax en mode MVVM
javascript - S'il y a existe-t-il plusieurs accès ajax à l'arrière-plan d'une page, l'arrière-plan est-il monothread en ce moment ? Ou multi-threading
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!