原生JS簡(jiǎn)單實(shí)現(xiàn)ajax的方法示例
本文實(shí)例講述了原生JS簡(jiǎn)單實(shí)現(xiàn)ajax的方法。分享給大家供大家參考,具體如下:
HTML部分:
<body> <input type="button" value="Ajax提交" onclick="Ajax();" /> <div id="resText" ></div> </body>
這里有個(gè)input按鈕,點(diǎn)擊會(huì)觸發(fā)click事件,click事件調(diào)用Ajax()方法。
JS部分:
<script language="javascript" type="text/javascript">
//通過(guò)這個(gè)函數(shù)來(lái)異步獲取信息
function Ajax(){
var xmlHttpReq = null; //聲明一個(gè)空對(duì)象用來(lái)裝入XMLHttpRequest
if (window.ActiveXObject){//IE5 IE6是以ActiveXObject的方式引入XMLHttpRequest的
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest){//除IE5 IE6 以外的瀏覽器XMLHttpRequest是window的子對(duì)象
xmlHttpReq = new XMLHttpRequest();//實(shí)例化一個(gè)XMLHttpRequest
}
if(xmlHttpReq != null){ //如果對(duì)象實(shí)例化成功
xmlHttpReq.open("GET","test.php",true); //調(diào)用open()方法并采用異步方式
xmlHttpReq.onreadystatechange=RequestCallBack; //設(shè)置回調(diào)函數(shù)
xmlHttpReq.send(null); //因?yàn)槭褂胓et方式提交,所以可以使用null參調(diào)用
}
function RequestCallBack(){//一旦readyState值改變,將會(huì)調(diào)用這個(gè)函數(shù)
if(xmlHttpReq.readyState == 4){
if(xmlHttpReq.status == 200){
//將xmlHttpReq.responseText的值賦給ID為 resText 的元素
document.getElementById("resText").innerHTML = xmlHttpReq.responseText;
}
}
}
}
</script>
Ajax大約分四步,創(chuàng)建Ajax對(duì)象,用open()方法偷偷的跑到服務(wù)器去獲取數(shù)據(jù),成功后做相應(yīng)的處理。用GET方法將要提交的參數(shù)寫到open方法的url參數(shù)中就行了,此時(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)用后臺(tái)的doGet方法和doPost方法處理。
PHP部分:
<?php echo "Hello Ajax!"; ?>
Ajax獲取了PHP的數(shù)據(jù)后,就會(huì)偷偷的將數(shù)據(jù)放到相應(yīng)的div層中。這個(gè)click事件并沒(méi)有使得頁(yè)面刷新,就偷偷的獲取了服務(wù)器端的數(shù)據(jù),服務(wù)端的數(shù)據(jù)也可以是從數(shù)據(jù)庫(kù)里讀取出來(lái)的,獲取數(shù)據(jù)后,Ajax還可以進(jìn)行一些動(dòng)作的處理。
一切都在悄無(wú)聲息中。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript中ajax操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
setInterval計(jì)時(shí)器不準(zhǔn)的問(wèn)題解決方法
在js中如果打算使用setInterval進(jìn)行倒數(shù),計(jì)時(shí)等功能,往往是不準(zhǔn)確的,針對(duì)這個(gè)問(wèn)題,本文有個(gè)不錯(cuò)的解決方案2014-05-05
javascript的var與let,const之間的區(qū)別詳解
這篇文章主要為大家介紹了?javascript的var與let,const之間的區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-12-12
js操作CheckBoxList實(shí)現(xiàn)全選/反選(在客服端完成)
對(duì)于CheckBoxList控件來(lái)說(shuō),一方面要實(shí)現(xiàn)大量數(shù)據(jù)在服務(wù)器端的綁定工作,另一方面往往要求實(shí)現(xiàn)全選、反選等功能,接下來(lái)將介紹js操作CheckBoxList實(shí)現(xiàn)全選/反選,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02
100個(gè)不能錯(cuò)過(guò)的實(shí)用JS自定義函數(shù)
本文收集了100個(gè)原生態(tài)JavaScript編寫的常用、實(shí)用自定義函數(shù),需要的朋友可以參考下2014-03-03
JavaScript生成隨機(jī)數(shù)的各種方法大全
JavaScript 是一門強(qiáng)大的編程語(yǔ)言,在前端和后端開(kāi)發(fā)中廣泛使用,生成隨機(jī)數(shù)是 JavaScript 開(kāi)發(fā)中的常見(jiàn)需求,應(yīng)用場(chǎng)景包括游戲開(kāi)發(fā)、驗(yàn)證碼生成、數(shù)據(jù)模擬等,本文將詳細(xì)介紹 JavaScript 中生成隨機(jī)數(shù)的各種方法,并分析其適用場(chǎng)景和優(yōu)缺點(diǎn),需要的朋友可以參考下2025-03-03
Bootstrap和Java分頁(yè)實(shí)例第一篇
這篇文章主要為大家詳細(xì)介紹了Bootstrap和Java分頁(yè)實(shí)例第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
js判斷文件類型大小并給出提示的實(shí)現(xiàn)方法
下面小編就為大家分享一篇js判斷文件類型大小并給出提示的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
JavaScript實(shí)現(xiàn)圖片懶加載(Lazyload)
這篇文章主要介紹了JavaScript實(shí)現(xiàn)圖片懶加載(Lazyload)的相關(guān)資料,需要的朋友可以參考下2016-11-11

