jQuery數(shù)據(jù)交互ajax

一、load方法:

 <script src="./jquery-3.2.1.js" charset="utf-8"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#content').load('./dat.html', function (data, status) {
                     if (status == 'error') {
                        $('#content').text('404,你要的頁(yè)面去火星啦')
                    }
                 });
               
                $('#content').load('./data.html .header,.header1', function (data) {
                     console.log(data);
                 })
//我們可以在請(qǐng)求的URL字符串后拼接一個(gè)選擇器,使用空格隔開(kāi)URL和選擇器,這樣當(dāng)load方法
                //把指定的數(shù)據(jù)請(qǐng)求下來(lái)后,會(huì)根據(jù)選擇器匹配對(duì)應(yīng)的標(biāo)簽,只把匹配上的標(biāo)簽拼接進(jìn)DOM文檔流。
                //如果需要使用多個(gè)選擇器作為過(guò)濾器,則多個(gè)選擇器之間使用“,”隔開(kāi)。

                $('#content').load('./data.html?user=張三&pass=123 h1', function (data, status, xhr) {
                    console.log(xhr);
                })
            });

        </script>
    <body>
        <div id="content">
        </div>
    </body>

load():由頁(yè)面中的標(biāo)簽對(duì)象調(diào)用,該方法被用來(lái)加載存放在服務(wù)器中的靜態(tài)文件(一般指html代碼片段),當(dāng)請(qǐng)求到這份文件后,會(huì)把文件中的數(shù)據(jù)拼接進(jìn)調(diào)用的標(biāo)簽中。

  • 參數(shù)一:必選
    要引入的靜態(tài)文件路徑,字符串類型,如果要發(fā)送get請(qǐng)求則將請(qǐng)求參數(shù)拼接在路徑后。
  • 參數(shù)二:可選
    使用post請(qǐng)求時(shí),該參數(shù)放的是傳遞的數(shù)據(jù),使用的是對(duì)象類型。
  • 參數(shù)三:可選
    請(qǐng)求結(jié)束時(shí)的回調(diào)函數(shù)(不管請(qǐng)求是否成功,都會(huì)觸發(fā)該函數(shù));
    回調(diào)函數(shù)中有兩個(gè)參數(shù):在請(qǐng)求成功時(shí),第一個(gè)參數(shù)保存的是請(qǐng)求到的數(shù)據(jù),第二個(gè)參數(shù)保存的是“success”字符串;在請(qǐng)求失敗時(shí),第一個(gè)參數(shù)保存的是失敗原因,第二個(gè)參數(shù)保存“error”字符串。我們可以根據(jù)第二個(gè)參數(shù)內(nèi)容,判斷該次請(qǐng)求是否成功。第二個(gè)參數(shù)總共有四個(gè)狀態(tài):
  • success:數(shù)據(jù)從服務(wù)器成功獲取到;
  • error:因?yàn)榉?wù)器響應(yīng)了錯(cuò)誤碼。導(dǎo)致數(shù)據(jù)無(wú)法獲取到;
  • notmodified:數(shù)據(jù)從緩存中獲取到;
  • timeout:因?yàn)槌瑫r(shí),數(shù)據(jù)無(wú)法獲取到。

二、get和post方法:

//訪問(wèn)json數(shù)據(jù)
$.get('./data.json',{
                    user:'張三',
                    pass:'123456'
                },function(data,status,xhr){
                    console.log(data);
                    console.log(status);
                    console.log(xhr);
                });         
//訪問(wèn)xml數(shù)據(jù)
            $.get('./data.xml',{
                    user:'張三',
                    pass:'123456'
                },function(data,status,xhr){
                    console.log(data);
                    console.log(status);
                    console.log(xhr);
                });

get():發(fā)送get請(qǐng)求的方法。
get方法直接綁定在jQuery函數(shù)中,由$直接調(diào)用。
get()方法中的參數(shù):

  • 參數(shù)一:必選,請(qǐng)求的接口地址(不能添加傳遞的參數(shù));
  • 參數(shù)二:可選,接口所需的參數(shù),對(duì)象類型;
  • 參數(shù)三:可選,回調(diào)函數(shù),只有在請(qǐng)求成功時(shí)才會(huì)觸發(fā);
    回調(diào)函數(shù)中的三個(gè)參數(shù):
    1、請(qǐng)求下來(lái)的數(shù)據(jù)(json/xml),參數(shù)會(huì)根據(jù)請(qǐng)求接口類型轉(zhuǎn)化數(shù)據(jù),json轉(zhuǎn)為object類型,xml自動(dòng)轉(zhuǎn)為DOM類型。
    2、請(qǐng)求狀態(tài)(success)。
    3、發(fā)送當(dāng)前get請(qǐng)求的請(qǐng)求對(duì)象。
  • 參數(shù)四:可選,要求請(qǐng)求的接口返回該參數(shù)指定的數(shù)據(jù)類型(xml/json/script/text);如果該接口有能力返回指定格式的數(shù)據(jù),則返回,如果沒(méi)能力,則請(qǐng)求失敗,不觸發(fā)回調(diào)函數(shù)。

post()方法參數(shù)情況和get一致,返回?cái)?shù)據(jù)也和get一致。

三、ajax方法:

ajax()使用方法:

$.ajax({
                method:"get",
                url:"./data.json",
                data:"user=zs&passwod=123",
                success:function(data){
                    console.log(data);
                },
                error:function(err){
                    console.log(err);
                },
                async:true
            });

ajax()函數(shù)是jQuery中所有和ajax請(qǐng)求相關(guān)方法的底層方法,該方法內(nèi)部封裝的是原生ajax請(qǐng)求。
該方法的參數(shù)是對(duì)象類型。

  • URL:接口字符串。
  • data:接口參數(shù)字符串。
  • method:請(qǐng)求方法字符串。
  • success:當(dāng)請(qǐng)求成功時(shí)執(zhí)行的回調(diào)函數(shù),該函數(shù)參數(shù)存放請(qǐng)求結(jié)果。
  • error:當(dāng)請(qǐng)求失敗時(shí)執(zhí)行的回調(diào)函數(shù),該函數(shù)的參數(shù)存放ajax請(qǐng)求對(duì)象,可以通過(guò)該對(duì)象下的status、readyState屬性值判斷失敗的原因。

使用jQuery中的ajax()方法實(shí)現(xiàn)跨域:

 $.ajax({
                method:"get",
                url:"http://10.0.156.213/data.php",
                data:'cb=?',
                dataType:'jsonp',
                jsonp:'cb',
                success:function(data){
                    console.log(data);
                }
            });

參數(shù):

  • url:要請(qǐng)求的跨域接口
  • method:請(qǐng)求方法,ajax請(qǐng)求跨域接口用的是jsonp實(shí)現(xiàn)的,所以該值一定是get(可?。?。
  • data:請(qǐng)求的跨域接口參數(shù),入股該接口不需要傳參,則該屬性和jsonp屬性二選一即可;該屬性值中包含一個(gè)回調(diào)函數(shù)字段,key是服務(wù)器指定的回調(diào)函數(shù)key,value是“?”
  • dataType:告訴ajax方法,發(fā)送的請(qǐng)求是jsonp請(qǐng)求,而不是ajax請(qǐng)求,必須指定該屬性值為“jsonp”
  • jsonp:值是服務(wù)器指定的回調(diào)函數(shù)的key值(可以和data二選一存在)
  • success:請(qǐng)求成功回調(diào)函數(shù)。

四、getJSON方法:

用法:

 $.getJSON('http://10.0.156.213/data.php?cb=?',function(data){
                console.log(data);  
 })

getJSON()發(fā)送get請(qǐng)求,接受json數(shù)據(jù)
第一個(gè)參數(shù):接口url(如果接口需要參數(shù),則參數(shù)拼接在接口之后)。
第二個(gè)參數(shù):回調(diào)函數(shù),當(dāng)請(qǐng)求成功時(shí),觸發(fā)回調(diào)函數(shù),函數(shù)的第一個(gè)形參保存的是請(qǐng)求到的數(shù)據(jù)。

最后編輯于
?著作權(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)容

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