今天從頭復習了一下Ajax,寫個demo增強一下印象,順便記錄一下遇到的一些問題。
ajax= Asynchronous javaScript and xml(異步的 Javascript 和 XML)。它是一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。
工具:Chrome瀏覽器、tomcat服務器
啟動tomcat服務器
打開tomcat里面bin目錄下的startup.bat文件,啟動tomcat服務器。(檢查tomcat是否啟動只要在瀏覽器里輸入localhost:8080,按回車訪問,若出現下圖則成功啟動。) 
創建需要利用ajax訪問的文件以及文件內容
該文件可以是任何類型,比如 .txt和.js或者.xml。我現在在tomcat里面的webapps下面的ROOT路徑里面新建一個txt1.txt,里面的內容寫一個json格式的數據:{“name”:”aa”,”age”:25},記得另存為utf-8的格式,否則好像會亂碼。
創建ajax請求文件 注意:這里有一個坑,如果我在本地新建的ajax請求文件,在Firefox瀏覽器下面運行是可以訪問到數據的,但是chrome瀏覽器有本地跨域的限制,需要在同一個域下面訪問,所以必須也在tomcat里面的webapps下面的ROOT路徑里面新建一個ajaxDemo.html,這樣就不會遇到跨域問題(其實跨域也有很多方式解決)。 ajaxDemo.html里面的內容如下:<!doctype html><html><head> <title>ajax demo</title> <meta charset="utf-8"></head><body><!--為了感受異步,特地加了一個計數器--> <div id="myDiv1"></div> <div id="myDiv"></div> <button type="button" onclick="loadXMLDoc()">請求數據</button><script type="text/javascript"> var a = 1; var id = setInterval(function(){ document.getElementById("myDiv1").innerHTML=a; a+=1; },0); function loadXMLDoc(){/* 每當 readyState 改變時,就會觸發 onreadystatechange 事件* readyState 屬性存有 xmlhttpRequest 的狀態信息* readyState屬性值:0代表請求未初始化;1代表服務器連接已建立;2代表請求已接收;3代表請求處理中;4代表請求已完成,且響應已就緒* status屬性值:200代表“ok",404代表未找到頁面*/ xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200) { /* 如需獲得來自服務器的響應,請使用 XMLHttPRequest 對象的 responseText 或 responseXML 屬性* responseText:獲得字符串形式的響應數據* responseXML:獲得 XML 形式的響應數據*/ document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","txt1.txt",true); xmlhttp.send(null); } </script></body></html>這樣當你通過localhost:8080/ajaxDemo訪問的時候也有一個一直增加的計數器和一個button,點擊button就可以利用ajax訪問到txt1.txt文件里面的json格式的數據。結果如下圖所示: 
新聞熱點
疑難解答