国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

原生js中ajax訪問的實例詳解

2024-09-01 08:33:53
字體:
來源:轉載
供稿:網友

原生js中ajax訪問的實例詳解

form表單中

登錄名:

失去光標即觸發事件

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);   } 

在返回xhr.responseText數據時,中文有亂碼的體現,尚未解決,所以為了只管體現,我讓后臺返回的是“0”或者“1”來做判斷,je中createXmlHttp()這個方法以前看老師講過,但是還是不理解,目前仿照這寫吧,功能實現了,這也是看到的最簡單的版本實現原生態ajax,整個ajax訪問流程還是比較好理解,提交訪問數據的時候也存在亂碼問題

web項目亂碼的問題解決方案

    開始的web項目整體以post方式提交,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返回數據亂碼,這個目前沒找到解決方案)

在來說下原生js非空驗證和button點擊提交功能

<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();  }

后面繼續加瓦,完善,所有代碼在之前的基于注解spring4.,mybatis3.最簡單的SSM整合 連接地址中,代碼持續更新

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邵阳市| 什邡市| 吐鲁番市| 丹凤县| 赞皇县| 大石桥市| 凤山市| 象州县| 五大连池市| 霍林郭勒市| 泸定县| 乌什县| 辽宁省| 昌宁县| 五华县| 邛崃市| 莆田市| 平和县| 临江市| 卢湾区| 大关县| 台安县| 蓬莱市| 濮阳县| 汉沽区| 宣恩县| 贵南县| 武城县| 肇东市| 札达县| 东乡| 星子县| 沂源县| 富锦市| 家居| 隆化县| 江陵县| 武强县| 沙田区| 社会| 商都县|