ajax常见错误和使用总结
生活随笔
收集整理的這篇文章主要介紹了
ajax常见错误和使用总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先給出標準的js時間ajax
?
<script type="txt/javascript">//1、在IE中實例化Msxml2.XMLHTTP對象 Msxml2.XMLHTTP是IE瀏覽器的內置對象,該對象具有異步提交數據和獲取結果的功能var xmlHttp=false; function initAJAX() {if(window.XMLHttpRequset){xmlHttp=new XMLHttpRequest();}else if(window.ActiveXObject){try { xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){window.alert("該瀏覽器不支持AJAX");}} } } //2、指定異步提交的目標和提交方式,調用xmlHttp的open方法true 表示異步請求 xmlhttp.open("get","info.jsp","true"); //3、指定當xmlHttp狀態改變時,需要進行處理//xmlHttp的狀態不斷變化,其狀態保存在xmlHttp的readyState屬性中,用xmlHttp.readyState表示,常見readyState屬性如下 //0:為初始化狀態,對象以創建,尚未調用open() //1:已初始化狀態,調用open()方法以后 //2:發送數據狀態,調用send()方法以后 //3:數據傳送狀態,已經接受到部分數據,但接受尚未完成 //4:完成狀態,數據全部接受完成 xmlHttp.onreadystatechange=function() {//處理代碼if(xmlHttp.readyState==4){infoDiv.innerHTML=xmlHttp.responseText;} } //還可以infoDiv.innerText中,xmlHttp.responseText表示目標文件得到的輸出的文本內容,xmlHttp.responseXml表示提交目標得到的xml格式的數據,//或者xmlHtttp.onreadyStatechange=handle;function handle() {//處理代碼 }//調用xmlHttp的send函數 如果請求方法是get的話,send可以沒有參數,或者參數是null,如果請求方式的post,可以將需要傳送的內容傳入send函數中以字符串的形式發出,及時是post //即使是post提交方式send函數還是可以將參數置空,可以將參數放在url后面進行請求。xmlhttp.send(); </script>
然后我們一般用jquery實現比較多點,這樣避免了瀏覽器不兼容
?
?
$.ajax({type: "POST",contentType: "application/json",url: "WS_Page.asmx/InitList",data: "{id:'" + $("#txtId").val() + "',url:'" + $("#txtUrl").val() + "',ip:'" + $("#txtIp").val() + "'}",datatype: 'json',cache: false,success: function(json) {var objlist = eval(json.d); $.each(objlist, function(n, obj) {strhtml += "<tr >";strhtml += "<td>";strhtml += obj.id;strhtml += "</td>";strhtml += "<td>";strhtml += obj.url;strhtml += "</td";strhtml += "<td>";strhtml += obj.ip;strhtml += "</td>";strhtml += "<td>";strhtml += obj.updatetime;strhtml += "</td>";strhtml += "<td>";strhtml += "<input type='button' value='編輯'onclick='javascript:location.href=\"Manager.aspx?id=" + obj.id + "\"'/>??";strhtml += "<input type='button' value='刪除'onclick='deleteInfo(" + obj.id + ")'/>";strhtml += "</td>";strhtml += "</tr>";}) $("#liststr").append(strhtml);},error: function(err) {alert(err.responseText);}});當然我們也可以用for循環,但是這個時候的話
success: function(json){for(var i=0;i<json.length;i++){json.name}}這樣寫是錯的啊,切記,得不到數據的,忘記了寫坐標,下面是對的。
?
?
success: function(json){for(var i=0;i<json.length;i++){json[i].name}}?
?
不知道大家看到過jquery API 沒有?
?
$.ajax()?
返回的是xmlRequest對象,已經封裝好了,如我們想通過驗證 return false 或者 return true 是得不到結果值的,這個原因我看了API才知道
?
比如:
$.ajax({type: "POST",contentType: "application/json",url: "WS_Page.asmx/InitList",data: "{id:'" + $("#txtId").val() + "',url:'" + $("#txtUrl").val() + "',ip:'" + $("#txtIp").val() + "'}",datatype: 'json',cache: false,success: function(json) {return false;},error: function(err) {alert(err.responseText);}});這樣寫就錯了 因為不會返回 false 可以這么寫
?
?
var boo=true; $.ajax({type: "POST",contentType: "application/json",url: "WS_Page.asmx/InitList",data: "{id:'" + $("#txtId").val() + "',url:'" + $("#txtUrl").val() + "',ip:'" + $("#txtIp").val() + "'}",datatype: 'json',cache: false,success: function(json) {boo=false;},error: function(err) {alert(err.responseText);}});
我們拿到boo的值就可以操作我們相關的函數了。
?
還有拼接字符串的時候
url:'" + $("#txtUrl").val() + "',ip:'" + $("#txtIp").val() + "'}",?
一定要記得加單引號,切記。
?
總結
以上是生活随笔為你收集整理的ajax常见错误和使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java宝典
- 下一篇: java Ant build.xml