首頁(yè)技術(shù)文章正文

jQuery中怎樣發(fā)起Ajax請(qǐng)求?

更新時(shí)間:2022-11-08 來(lái)源:黑馬程序員 瀏覽量:

Ajax的全稱是 Asynchronous Javascript And XML(異步 JavaScript 和 XML)。在網(wǎng)頁(yè)中它可以幫我們輕松實(shí)現(xiàn)網(wǎng)頁(yè)與服務(wù)器之間的連接。利用 XMLHttpRequest 對(duì)象和服務(wù)器進(jìn)行數(shù)據(jù)交互。

瀏覽器中提供的 XMLHttpRequest 用法比較復(fù)雜,所以 jQuery 對(duì) XMLHttpRequest 進(jìn)行了封裝,提供了一系列 Ajax 相關(guān)的函數(shù),極大地降低了 Ajax 的使用難度。jQuery 中發(fā)起 Ajax 請(qǐng)求最常用的三個(gè)方法如下:

  ?$.get()

  ?$.post()

  ?$.ajax()

1.$.ajax()函數(shù)的語(yǔ)法

jQuery 中 $.get() 函數(shù)的功能單一,專門用來(lái)發(fā)起 get 請(qǐng)求,從而將服務(wù)器上的資源請(qǐng)求到客戶端來(lái)進(jìn)行使用。$.get() 函數(shù)的語(yǔ)法如下:

$.get(url, [data], [callback])

其中,三個(gè)參數(shù)各自代表的含義如下表:

參數(shù)代表的含義

使用 $.get() 函數(shù)發(fā)起不帶參數(shù)的請(qǐng)求時(shí),直接提供請(qǐng)求的 URL 地址和請(qǐng)求成功之后的回調(diào)函數(shù)即可,示例代碼如下:

$.get('http://www.liulongbin.top:3006/api/getbooks', function(res) {
    console.log(res) // 這里的 res 是服務(wù)器返回的數(shù)據(jù)
})

發(fā)起請(qǐng)求后,查看頁(yè)面的網(wǎng)頁(yè)源代碼,Network頁(yè)的顯示如下圖:

生成的network

使用 $.get() 函數(shù)發(fā)起帶參數(shù)的請(qǐng)求時(shí),示例代碼如下:

$.get('http://www.liulongbin.top:3006/api/getbooks', { id: 1 }, function(res) {
    console.log(res)
})

發(fā)起請(qǐng)求后,查看頁(yè)面的網(wǎng)頁(yè)源代碼,Network頁(yè)的顯示如下:
網(wǎng)頁(yè)源代碼

2.$.post()

jQuery 中 $.post() 函數(shù)的功能單一,專門用來(lái)發(fā)起 post 請(qǐng)求,從而向服務(wù)器提交數(shù)據(jù)。$.post() 函數(shù)的語(yǔ)法如下:

$.post(url, [data], [callback])

其中,三個(gè)參數(shù)各自代表的含義如下:

1667894664290_62.png

使用 $post() 向服務(wù)器提交數(shù)據(jù)的示例代碼如下:

$.post(
   'http://www.liulongbin.top:3006/api/addbook', // 請(qǐng)求的URL地址
   { bookname: '水滸傳', author: '施耐庵', publisher: '上海圖書(shū)出版社' }, // 提交的數(shù)據(jù)
   function(res) { // 回調(diào)函數(shù)
      console.log(res)
   }
)

同樣可以看到,發(fā)起請(qǐng)求后網(wǎng)頁(yè)源代碼中,文件成功加載:

1667894762510_圖片3.png

3.$.ajax()函數(shù)的語(yǔ)法

相比于 $.get() 和 $.post() 函數(shù),jQuery 中提供的 $.ajax() 函數(shù),是一個(gè)功能比較綜合的函數(shù),它允許我們對(duì) Ajax 請(qǐng)求進(jìn)行更詳細(xì)的配置。$.ajax() 函數(shù)的基本語(yǔ)法如下:

$.ajax({
   type: '', // 請(qǐng)求的方式,例如 GET 或 POST
   url: '',  // 請(qǐng)求的 URL 地址
   data: { },// 這次請(qǐng)求要攜帶的數(shù)據(jù)
   success: function(res) { } // 請(qǐng)求成功之后的回調(diào)函數(shù)
})

使用 $.ajax() 發(fā)起 GET 請(qǐng)求時(shí),只需要將 type 屬性的值設(shè)置為 'GET' 即可:

$.ajax({
   type: 'GET', // 請(qǐng)求的方式
   url: 'http://www.liulongbin.top:3006/api/getbooks',  // 請(qǐng)求的 URL 地址
   data: { id: 1 },// 這次請(qǐng)求要攜帶的數(shù)據(jù)
   success: function(res) { // 請(qǐng)求成功之后的回調(diào)函數(shù)
       console.log(res)
   }
})

使用 $.ajax() 發(fā)起 POST 請(qǐng)求時(shí),只需要將 type 屬性的值設(shè)置為 'POST'。

$.ajax({
   type: 'POST', // 請(qǐng)求的方式
   url: 'http://www.liulongbin.top:3006/api/addbook',  // 請(qǐng)求的 URL 地址
   data: { // 要提交給服務(wù)器的數(shù)據(jù)
      bookname: '水滸傳',
      author: '施耐庵',
      publisher: '上海圖書(shū)出版社'
    },
   success: function(res) { // 請(qǐng)求成功之后的回調(diào)函數(shù)
       console.log(res)
   }
})


分享到:

Java培訓(xùn)班課程javaee

Python培訓(xùn)機(jī)構(gòu)python大數(shù)據(jù)

web前端培訓(xùn)課程升級(jí)V8.5web

AI+設(shè)計(jì)培訓(xùn)課程ui

大數(shù)據(jù)培訓(xùn)課程cloud

軟件測(cè)試培訓(xùn)課程test

c

新媒體運(yùn)營(yíng)培訓(xùn)netmarket

產(chǎn)品經(jīng)理培訓(xùn)課程pm

linux培訓(xùn)Linux

movies

智能機(jī)器人培訓(xùn)robot

電商視覺(jué)設(shè)計(jì)課程uids

AI

集成電路應(yīng)用開(kāi)發(fā)(嵌入式)培訓(xùn)課程jdbc

在線咨詢 我要報(bào)名
和我們?cè)诰€交談!