jQuery數據交互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,你要的頁面去火星啦')
                    }
                 });
               
                $('#content').load('./data.html .header,.header1', function (data) {
                     console.log(data);
                 })
//我們可以在請求的URL字符串后拼接一個選擇器,使用空格隔開URL和選擇器,這樣當load方法
                //把指定的數據請求下來后,會根據選擇器匹配對應的標簽,只把匹配上的標簽拼接進DOM文檔流。
                //如果需要使用多個選擇器作為過濾器,則多個選擇器之間使用“,”隔開。

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

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

load():由頁面中的標簽對象調用,該方法被用來加載存放在服務器中的靜態文件(一般指html代碼片段),當請求到這份文件后,會把文件中的數據拼接進調用的標簽中。

  • 參數一:必選
    要引入的靜態文件路徑,字符串類型,如果要發送get請求則將請求參數拼接在路徑后。
  • 參數二:可選
    使用post請求時,該參數放的是傳遞的數據,使用的是對象類型。
  • 參數三:可選
    請求結束時的回調函數(不管請求是否成功,都會觸發該函數);
    回調函數中有兩個參數:在請求成功時,第一個參數保存的是請求到的數據,第二個參數保存的是“success”字符串;在請求失敗時,第一個參數保存的是失敗原因,第二個參數保存“error”字符串。我們可以根據第二個參數內容,判斷該次請求是否成功。第二個參數總共有四個狀態:
  • success:數據從服務器成功獲取到;
  • error:因為服務器響應了錯誤碼。導致數據無法獲取到;
  • notmodified:數據從緩存中獲取到;
  • timeout:因為超時,數據無法獲取到。

二、get和post方法:

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

get():發送get請求的方法。
get方法直接綁定在jQuery函數中,由$直接調用。
get()方法中的參數:

  • 參數一:必選,請求的接口地址(不能添加傳遞的參數);
  • 參數二:可選,接口所需的參數,對象類型;
  • 參數三:可選,回調函數,只有在請求成功時才會觸發;
    回調函數中的三個參數:
    1、請求下來的數據(json/xml),參數會根據請求接口類型轉化數據,json轉為object類型,xml自動轉為DOM類型。
    2、請求狀態(success)。
    3、發送當前get請求的請求對象。
  • 參數四:可選,要求請求的接口返回該參數指定的數據類型(xml/json/script/text);如果該接口有能力返回指定格式的數據,則返回,如果沒能力,則請求失敗,不觸發回調函數。

post()方法參數情況和get一致,返回數據也和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()函數是jQuery中所有和ajax請求相關方法的底層方法,該方法內部封裝的是原生ajax請求。
該方法的參數是對象類型。

  • URL:接口字符串。
  • data:接口參數字符串。
  • method:請求方法字符串。
  • success:當請求成功時執行的回調函數,該函數參數存放請求結果。
  • error:當請求失敗時執行的回調函數,該函數的參數存放ajax請求對象,可以通過該對象下的status、readyState屬性值判斷失敗的原因。

使用jQuery中的ajax()方法實現跨域:

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

參數:

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

四、getJSON方法:

用法:

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

getJSON()發送get請求,接受json數據
第一個參數:接口url(如果接口需要參數,則參數拼接在接口之后)。
第二個參數:回調函數,當請求成功時,觸發回調函數,函數的第一個形參保存的是請求到的數據。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容