首頁 > 常見問題 > 主體

jquery如何實作Ajax請求

尊渡假赌尊渡假赌尊渡假赌
發布: 2023-05-26 15:30:02
原創
8428 人瀏覽過

jquery實作Ajax請求的方法:1、「$.ajax()」方法;2、「$.post()」方法,程式碼為「$.post(url, data, func, dataType) ;」;3、「$.get()」方法,程式碼為「$.get(url, data, func, dataType);」;4、「$.getJSON()」方法等等。

jquery如何實作Ajax請求

本教學作業系統:Windows10系統、jQuery3.6.0版本、Dell G3電腦。

jquery實作Ajax請求

Ajax用於無需刷新整個頁面而進行瀏覽器與伺服器的通信,伺服器將不再返回整個頁面,而是返回部分數據,透過JavaScript的DOM操作對節點進行更新。資料傳輸格式有xml、json等格式,但常用的是json格式。
我們可以使用JavaScript的物件XMLHttpRequest來實作原生Ajax,但這種方法比較複雜,不易寫。 jQuery已經封裝了Ajax,使得發起Ajax請求比較容易,本文簡單介紹jQuery實作Ajax的過程:

1、在標籤中引入jquery.js檔案

#
 <script src="https://code.jquery.com/jquery-3.6.1.js"></script>
登入後複製

2、幾種常見jQuery的Ajax方法

#(1)$.ajax()
# ①url:連結位址,字串表示
②data:(可選) 要傳送給伺服器的數據,GET與POST都可以,將自動轉換為請求字串格式,以Key/value的鍵值對形式表示,會做為QueryString附加到請求URL中,格式為{A: '…', B: '…'}
③type:“POST” 或“GET”,請求類型
④timeout:請求超時時間,單位為毫秒,數值表示
⑤cache:是否快取請求結果,bool表示
⑥contentType:內容類型,預設為"application/x-www-form-urlencoded"
⑦dataType:伺服器回應的資料類型,字串表示;當填寫為json時,回呼函數中無需再對資料反序列化為json
⑧success:請求成功後,伺服器回呼的函數
⑨error:請求失敗後,伺服器回呼的函數
⑩complete:請求完成後呼叫的函數,無論請求是成功或失敗,都會呼叫函數;如果設定了success與error函數,則函數在它們之後被呼叫
⑪async:是否非同步處理,bool表示,預設為true;設定該值為false後,JS不會向下執行,而是原地等待伺服器返回數據,並完成相應的回調函數後,再向下執行
⑫username:存取認證請求中攜帶的用戶名,字串表示
⑬password:傳回認證請求中所攜帶的密碼,字串表示

 <script type="text/javascript">
        function login1(){
            $.ajax({
                //${pageContext.request.contextPath}用于取后端方法的绝对路径的项目名
                url: "${pageContext.request.contextPath}/user/returnJson",
                type: "GET",
                data:'{name: 'James'}', //必须是字符串格式
                contentType:"application/json", //指定内容格式
                dataType:json,
                success: function(data) {  //括号里的data是服务器返回的数据
                    console.log(data);
                    document.getElementById("myDiv").innerText=data["name"];
                }
            });
        }
    </script>
登入後複製
<script>
    $('#btn1').click(function () {
        $.ajax({
            type:"post",	//提交方式
            url:'${pageContext.request.contextPath}/JSONServlet',
            data:{
                bookname:  $("#bookname").val()//val() 方法返回或设置被选元素的值。
            },
            dataType: "json",   	//返回数据的格式
            success:function (responseData) {
                var html = "";
                $('#dataTable tr:not(:first)').remove(); //删除第一行之外的所有行
                // $('#dataTable > tbody > tr').remove();   // 删除所有行,表头会被删除
                console.log(responseData);
                for (var i = 0; i < responseData.length; i++) {
                    html += &#39;<tr>';
                    html += '<td>'+responseData[i].bookid+'</td>'+'<td>'+responseData[i].bookname+'</td>'+'<td>'+responseData[i].price+'</td>'
                    html += '</tr>';
                }
                $('#dataTable').append(html);
            },
        });
    });
</script>
登入後複製

#(2)$.post()

使用POST方式執行Ajax請求,從伺服器載入數據。
形式:$.post(url, data, func, dataType);
可選參數:
①url:連結位址,字串表示
②data:需要發送到伺服器的數據,格式為{A: '…', B: '…'}
③func:請求成功後,伺服器回呼的函數;function(data, status, xhr),其中data為伺服器回傳的數據,status為回應狀態, xhr為XMLHttpRequest對象,個人感覺關注data參數即可
④dataType:伺服器返回資料的格式

<script type="text/javascript">
        function login2(){
            $.post(
                "${pageContext.request.contextPath}/user/returnJson",
                 '{name: 'James'}',
                  "application/json",
                 function(data) {
                    console.log(data);
                    document.getElementById("myDiv").innerText=data["name"];
                }
            );
        }
    </script>
登入後複製

(3)$.get()

#使用GET方式執行Ajax請求,從伺服器載入資料。
形式:$.get(url, data, func, dataType);

<script type="text/javascript">
        function login3(){
            $.get(
                "${pageContext.request.contextPath}/user/returnJson",
                function(data) {
                    console.log(data);
                    document.getElementById("myDiv").innerText=data["name"];
                }
            );
        }
    </script>
登入後複製

(4)$.getJSON()

形式:$.getJSON (url, data, func);
使用GET方式執行Ajax請求,從伺服器載入JSON格式資料。

<script type="text/javascript">
        function login4(){
            $.getJSON(
                "${pageContext.request.contextPath}/user/returnJson",
                function(data) {
                    console.log(data);
                    document.getElementById("myDiv").innerText=data["name"];
                }
            );
        }
    </script>
登入後複製

注意:因為確定伺服器傳回的資料格式為json,因此該方法不必再指定dataType。

(5)$.load()

將伺服器載入的資料直接插入指定DOM中的某個節點。
形式:$.load(url, data, func);
其中data如果存在則使用POST方式發送請求,不存在則使用GET方式發送請求。

		<div id="myRes"></div>
		function login5() {
            $('#myRes').load(
                "${pageContext.request.contextPath}/user/returnJson",  
                '{name: 'James'}',
                "application/json"
            );
            }
登入後複製

以上是jquery如何實作Ajax請求的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板