Ajax基礎(chǔ)知識(shí)詳解
Ajax主要的功能是實(shí)現(xiàn)了瀏覽器端 異步 訪問(wèn)服務(wù)器:通過(guò)瀏覽器的XMLHttpRequest對(duì)象發(fā)出小部分?jǐn)?shù)據(jù),與服務(wù)端進(jìn)行交互,服務(wù)端返回小部分?jǐn)?shù)據(jù),然后更新客戶端的部分頁(yè)面。
1.先實(shí)例化XMLHttpRequest對(duì)象
var request; if (window.XMLHttpRequest){ request=new XMLHttpRequest(); } else{ request=new ActiveXObject("Microsoft.XMLHTTP"); //兼容ie5 6 }
2.XMLHttpRequest的方法將請(qǐng)求發(fā)送給服務(wù)器
request.open("POST",get.php,true);//請(qǐng)求 //設(shè)置http的頭信息,告訴服務(wù)器我們要以send鍵值對(duì)方式發(fā)送一個(gè)表單, request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //POST必須設(shè)置Content-Type的值在open與send之間 request.send("name=王二狗&sex=男");//用send方法提交給服務(wù)端
3.獲取響應(yīng)的方法
responseText 獲得字符串形式的響應(yīng)數(shù)據(jù) responseXML 獲得XML形式的響應(yīng)數(shù)據(jù) status和statusText 以數(shù)字和文本形式返回HTTP狀態(tài)碼 getAllResponseHeader() 獲取所有的響應(yīng)報(bào)頭 getResponseHeader() 查詢響應(yīng)中的某個(gè)字段的值
4.監(jiān)聽(tīng)readyState屬性的變化很重要
為0 請(qǐng)求未初始化,open還沒(méi)有被調(diào)用
為1 服務(wù)器連接已建立,open已經(jīng)調(diào)用了
為2 請(qǐng)求已被接收,接收到頭的信息了
為3 請(qǐng)求處理中,接收到響應(yīng)體了
為4 請(qǐng)求已完成,且響應(yīng)就緒,響應(yīng)完成了
//readyState變化時(shí)觸發(fā) //通過(guò)onreadystatechange事件判斷readyState屬性的變化 request.onreadystatechange=function(){ if(request.readyState===4&&request.status===200){ //做一些事情 比如獲取響應(yīng)數(shù)據(jù)request.responseText } }
5.完整XHR
var request=new XMLHttpRequest();//1.創(chuàng)建XHR對(duì)象 request.open("GET","get.php?number=" +表單里需要提交的數(shù)據(jù),true);//2.調(diào)用open方法 //這里如果是post請(qǐng)求。send的就是一個(gè)包含數(shù)據(jù)的對(duì)象 request.send();//發(fā)送一些數(shù)據(jù) request.onreadystatechange=function(){ //3.進(jìn)行監(jiān)聽(tīng)判斷服務(wù)器是否正確響應(yīng) if(request.readyState===4&&request.status===200){ //4.做一些事情 比如獲取服務(wù)器響應(yīng)內(nèi)容request.responseText } }
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
JavaScript 防抖和節(jié)流遇見(jiàn)的奇怪問(wèn)題及解決
這篇文章主要介紹了JavaScript 防抖和節(jié)流遇見(jiàn)的奇怪問(wèn)題及解決,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下2020-11-11layer.prompt使文本框?yàn)榭盏那闆r下也能點(diǎn)擊確定的方法
今天小編就為大家分享一篇layer.prompt使文本框?yàn)榭盏那闆r下也能點(diǎn)擊確定的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JavaScript定時(shí)器和優(yōu)化的取消定時(shí)器方法
這篇文章主要介紹了JavaScript定時(shí)器和優(yōu)化的取消定時(shí)器方法,本文著重講解一個(gè)優(yōu)化的取消定時(shí)器的方法,需要的朋友可以參考下2015-07-07JavaScript iframe數(shù)據(jù)共享接口實(shí)現(xiàn)方法
在iframe與父窗口或者與子窗口傳遞數(shù)據(jù)是一個(gè)麻煩的事情,如果我們能夠?qū)懸粋€(gè)一勞永逸的接口那就再方便不過(guò)了,下面就來(lái)簡(jiǎn)答介紹一下如何實(shí)現(xiàn)此功能,對(duì)js iframe相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01小程序云開(kāi)發(fā)實(shí)戰(zhàn)小結(jié)
這篇文章主要介紹了小程序云開(kāi)發(fā)實(shí)戰(zhàn)小結(jié),本文詳細(xì)的介紹了云開(kāi)發(fā)以及環(huán)境的搭建和項(xiàng)目實(shí)踐,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-10-10inquirer.js一個(gè)用戶與命令行交互的工具詳解
這篇文章主要介紹了inquirer.js一個(gè)用戶與命令行交互的工具詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05