原生Ajax

XMLHttpRequest 對(duì)象

XMLHttpRequest 用于在后臺(tái)與服務(wù)器交換數(shù)據(jù)。這意味著可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。

XMLHttpRequest的方法:

image.png

XMLHttpRequest的屬性:

image.png

image.png

HTTP請(qǐng)求的方法:

post和get

image.png

post和get的區(qū)別:

image.png

同步和異步的區(qū)別:

image.png

創(chuàng)建Ajax的步驟:

分為四步

image.png

1、創(chuàng)建Ajax對(duì)象:

只兼容非IE6

var oAjax = new XMLHttpRequest();

如何兼容IE6

var oAjax = new ActiveXObject("Microsoft.XMLHTTP");

完整兼容做法:

if (window.XMLHttpRequest){
                        var oAjax = new XMLHttpRequest();
                    }
                    else {
                        var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
                    }

2、連接服務(wù)器:

open(方法,連接的文件名,異步傳輸)
oAjax.open('get','a.txt',true);
oAjax.open('get','a.txt?t='+new Data().getTime(),true);//阻止緩存

3、發(fā)送請(qǐng)求:

oAjax.send();

4、接收返回的信息:

oAjax.onreadystatechange = function(){
                        //oAjax.readyState   //告訴瀏覽器和服務(wù)器,進(jìn)行到哪一步了
                        if (oAjax.readyState == 4){ //讀取完成,未代表成功
                            //判斷讀取成功還是失敗
                            if (oAjax.status == 200){ //200代表成功
                                alert("成功:" + oAjax.responseText);
                            }
                            else {
                                alert("失敗:" + oAjax.status);
                            }
                        }

完整代碼

html

<input type="button" value="讀取" id="btn1"/>

js

<script>
            window.onload = function(){
                var oBtn = document.getElementById("btn1");
                oBtn.onclick = function(){
                    //1、創(chuàng)建Ajax對(duì)象
                    //只兼容非IE6瀏覽器
                    //var oAjax = new XMLHttpRequest();
                    
                    //IE6
                    //var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
                    //alert(oAjax);
                    
                    //要做兼容
                    //第一步創(chuàng)建Ajax對(duì)象
                    if (window.XMLHttpRequest){
                        var oAjax = new XMLHttpRequest();
                    }
                    else {
                        var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    
                    //alert(oAjax);
                    //第二步:連接服務(wù)器
                    //open(方法,連接的文件名,異步傳輸)
                    
                    //oAjax.open('get','a.txt',true);
                    oAjax.open('get','a.txt?t='+new Data().getTime(),true);//阻止緩存
                    
                    //第三步:發(fā)送請(qǐng)求
                    oAjax.send();
                    
                    //第四步:接收返回的信息
                    oAjax.onreadystatechange = function(){
                        //oAjax.readyState   //告訴瀏覽器和服務(wù)器,進(jìn)行到哪一步了
                        if (oAjax.readyState == 4){ //讀取完成,未代表成功
                            //判斷讀取成功還是失敗
                            if (oAjax.status == 200){ //200代表成功
                                alert("成功:" + oAjax.responseText);
                            }
                            else {
                                alert("失敗:" + oAjax.status);
                            }
                        }
                    };
                };
            };
        </script>

把Ajax封裝成函數(shù)

<script>
            function ajax(url,fnSucc,fnFaild){
                //1、創(chuàng)建Ajax對(duì)象
                    if (window.XMLHttpRequest){
                        var oAjax = new XMLHttpRequest();
                    }
                    else {
                        var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    
                    //2、連接服務(wù)器
                    //open(方法,連接的文件名,異步傳輸)
                    oAjax.open('get',url,true);
                    
                    //3、發(fā)送請(qǐng)求
                    oAjax.send();
                    
                    //4、接收返回的信息
                    oAjax.onreadystatechange = function(){
                        //oAjax.readyState   //告訴瀏覽器和服務(wù)器,進(jìn)行到哪一步了
                        if (oAjax.readyState == 4){ //讀取完成
                            //判斷讀取成功還是失敗
                            if (oAjax.status == 200){ //200代表成功
                                fnSucc(oAjax.responseText);
                            }
                            else {
                                if (fnFaild){
                                    fnFaild(oAjax.status);
                                }
                            }
                        }
                    };
            }
        </script>

引用調(diào)用封裝的Ajax

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="Ajax.js"></script>
        <script>
            window.onload = function(){
                var oBtn = document.getElementById("btn1");
                oBtn.onclick = function(){
                    ajax("a.txt",function(str){
                        alert(str);
                    });
                };
            };
        </script>
    </head>
    <body>
        <input type="button" value="讀取" id="btn1"/>
    </body>
</html>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,819評(píng)論 1 45
  • 1. 什么是AJAX?它又能做什么? 先來(lái)看看這個(gè)名稱的構(gòu)成:Asynchronous JavaScript an...
    seven冫閱讀 543評(píng)論 0 2
  • 沒(méi)有學(xué)Ajax之前,就在想這到底是一門什么技術(shù),問(wèn)自己什么是Ajax?Ajax有哪些重點(diǎn)概念?Ajax如何運(yùn)用?聽(tīng)...
    張延偉閱讀 2,109評(píng)論 0 8
  • 一. Ajax 是什么? 全稱Asynchronous JavaScript and XML; 異步的 JavaS...
    _信仰zmh閱讀 10,783評(píng)論 0 13
  • 澳洲大學(xué)星級(jí)排名 澳大利亞首都地區(qū) ★★★★★澳洲國(guó)立大學(xué) ★★堪培拉大學(xué) 新南威爾士州 ★★★★★悉尼大學(xué) ★★...
    富富菌閱讀 213評(píng)論 0 0

友情鏈接更多精彩內(nèi)容