原生JS簡單實現(xiàn)ajax的方法示例
本文實例講述了原生JS簡單實現(xiàn)ajax的方法。分享給大家供大家參考,具體如下:
HTML部分:
<body> <input type="button" value="Ajax提交" onclick="Ajax();" /> <div id="resText" ></div> </body>
這里有個input按鈕,點(diǎn)擊會觸發(fā)click事件,click事件調(diào)用Ajax()方法。
JS部分:
<script language="javascript" type="text/javascript"> //通過這個函數(shù)來異步獲取信息 function Ajax(){ var xmlHttpReq = null; //聲明一個空對象用來裝入XMLHttpRequest if (window.ActiveXObject){//IE5 IE6是以ActiveXObject的方式引入XMLHttpRequest的 xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest){//除IE5 IE6 以外的瀏覽器XMLHttpRequest是window的子對象 xmlHttpReq = new XMLHttpRequest();//實例化一個XMLHttpRequest } if(xmlHttpReq != null){ //如果對象實例化成功 xmlHttpReq.open("GET","test.php",true); //調(diào)用open()方法并采用異步方式 xmlHttpReq.onreadystatechange=RequestCallBack; //設(shè)置回調(diào)函數(shù) xmlHttpReq.send(null); //因為使用get方式提交,所以可以使用null參調(diào)用 } function RequestCallBack(){//一旦readyState值改變,將會調(diào)用這個函數(shù) if(xmlHttpReq.readyState == 4){ if(xmlHttpReq.status == 200){ //將xmlHttpReq.responseText的值賦給ID為 resText 的元素 document.getElementById("resText").innerHTML = xmlHttpReq.responseText; } } } } </script>
Ajax大約分四步,創(chuàng)建Ajax對象,用open()方法偷偷的跑到服務(wù)器去獲取數(shù)據(jù),成功后做相應(yīng)的處理。用GET方法將要提交的參數(shù)寫到open方法的url參數(shù)中就行了,此時send方法的參數(shù)為null。
例如GET方法 :
var url = "login.php?user=XXX&pwd=XXX"; xmlHttpRequest.open("GET",url,true); xmlHttpRequset.send(null);
例如POST方法:
xmlHttpRequest.open("POST","login.php",true); xmlHttpRequest.setRequestHeder("Content-Type","application/x-www-form-urlencoded;charset=UTF-8"); xmlHttpRequest.send("user="+username+"&pwd="+password);
如果需要在send里傳遞參數(shù)則setRequestHeder是必須的
需要注意的是根據(jù)提交方式的不同,兩種提交方式分別調(diào)用后臺的doGet方法和doPost方法處理。
PHP部分:
<?php echo "Hello Ajax!"; ?>
Ajax獲取了PHP的數(shù)據(jù)后,就會偷偷的將數(shù)據(jù)放到相應(yīng)的div層中。這個click事件并沒有使得頁面刷新,就偷偷的獲取了服務(wù)器端的數(shù)據(jù),服務(wù)端的數(shù)據(jù)也可以是從數(shù)據(jù)庫里讀取出來的,獲取數(shù)據(jù)后,Ajax還可以進(jìn)行一些動作的處理。
一切都在悄無聲息中。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript中ajax操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
基于leaflet.js實現(xiàn)修改地圖主題樣式的流程分析
這篇文章主要介紹了基于leaflet.js實現(xiàn)修改地圖主題樣式的流程,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05js正則表達(dá)式中test,exec,match方法的區(qū)別說明
本篇文章主要是對js正則表達(dá)式中test,exec,match方法的區(qū)別進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01JS動態(tài)修改表格cellPadding和cellSpacing的方法
這篇文章主要介紹了JS動態(tài)修改表格cellPadding和cellSpacing的方法,涉及javascript操作cellPadding和cellSpacing屬性的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03小程序云開發(fā)獲取不到數(shù)據(jù)庫記錄的解決方法
這篇文章主要為大家詳細(xì)介紹了小程序云開發(fā)獲取不到數(shù)據(jù)庫記錄的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05JavaScript實現(xiàn)簡易聊天對話框(加滾動條)
這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)簡易聊天對話框,附加滾動條功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02