千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > js發(fā)送請(qǐng)求用法介紹

js發(fā)送請(qǐng)求用法介紹

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-20 21:06:38 1700485598

一、基本介紹

JavaScript是一種能夠在Web頁(yè)面上實(shí)現(xiàn)動(dòng)態(tài)行為的腳本語(yǔ)言,具有輕量級(jí),可嵌入 HTML 頁(yè)面,可編程,面向?qū)ο螅录?qū)動(dòng)等特點(diǎn),可與瀏覽器進(jìn)行交互,包括請(qǐng)求數(shù)據(jù),提交表單以及更新/顯示內(nèi)容。

在JavaScript中,我們可以通過(guò)多種方式向后端服務(wù)器發(fā)送請(qǐng)求,這篇文章將對(duì)幾種常用的請(qǐng)求方式進(jìn)行闡述。

二、XMLHttpRequest

XMLHttpRequest是一種原生JS對(duì)象,用于在后臺(tái)與服務(wù)器交換數(shù)據(jù),包括發(fā)送請(qǐng)求和接收響應(yīng),是最基礎(chǔ),最常見(jiàn)的網(wǎng)絡(luò)請(qǐng)求方式。

XMLHttpRequest請(qǐng)求可以同步和異步兩種方式進(jìn)行,一般情況下都使用異步方式。異步方式的實(shí)現(xiàn)主要是通過(guò)回調(diào)函數(shù)和onreadystatechange屬性,當(dāng)readyState的屬性值變化時(shí)觸發(fā)回調(diào)函數(shù)。

// 創(chuàng)建一個(gè)HTTP請(qǐng)求對(duì)象
let xhr = new XMLHttpRequest();
// 創(chuàng)建一個(gè)異步的請(qǐng)求
xhr.open('GET', 'test.json', true);
// 設(shè)置監(jiān)聽(tīng)函數(shù)
xhr.onreadystatechange = function () {
  // 當(dāng)readyState的屬性值變化時(shí)觸發(fā)回調(diào)函數(shù)
  if (xhr.readyState === 4 && xhr.status === 200) {
    // 處理返回的數(shù)據(jù)
    console.log(xhr.responseText);
  }
};
// 發(fā)送請(qǐng)求
xhr.send(null);

三、fetch

fetch API是一種基于JavaScript Promise 的現(xiàn)代API,在XMLHttpRequest的基礎(chǔ)上進(jìn)行了一定的優(yōu)化,提供了更好的、更簡(jiǎn)單、更靈活的網(wǎng)絡(luò)請(qǐng)求方式,但是需要注意的是fetch在不同瀏覽器中,其支持情況和表現(xiàn)可能有所不同。

fetch的基本使用方式為使用fetch()函數(shù)向指定的URL發(fā)起網(wǎng)絡(luò)請(qǐng)求,然后使用Promise進(jìn)行異步處理。

fetch('test.json')
  .then(function (response) {
    return response.json();
  })
  .then(function (myJson) {
    console.log(myJson);
  });

四、axios

Axios是一個(gè)基于Promise的HTTP客戶(hù)端,用于在瀏覽器和 Node.js 中發(fā)送異步的HTTP請(qǐng)求。它由于使用方便、功能強(qiáng)大,在現(xiàn)代Web開(kāi)發(fā)中被廣泛應(yīng)用。

與fetch類(lèi)似,Axios發(fā)送請(qǐng)求時(shí),返回值也是Promise對(duì)象,方便進(jìn)行then和catch處理。

// 發(fā)送一個(gè) GET 請(qǐng)求
axios.get('test.json')
  .then(function (response) {
    console.log(response.data);
  })
  .catch(function (error) {
    console.log(error);
  });

五、jQuery Ajax

jQuery是一個(gè)被廣泛應(yīng)用于Web開(kāi)發(fā)中的JavaScript庫(kù),其提供的Ajax請(qǐng)求功能也是非常常用的,使用方便簡(jiǎn)單。

jQuery.ajax()方法可以通過(guò)多個(gè)參數(shù)進(jìn)行網(wǎng)絡(luò)請(qǐng)求,包括URL,type,data,dataType等,其中,type參數(shù)是指請(qǐng)求方式,dataType參數(shù)表示預(yù)期返回的數(shù)據(jù)類(lèi)型。

$.ajax({
  url: 'test.json',
  type: 'GET',
  dataType: 'json',
  success: function(data) {
    console.log(data);
  },
  error: function(xhr, status, error) {
    console.log(error);
  }
});

六、總結(jié)

本文對(duì)JavaScript發(fā)送網(wǎng)絡(luò)請(qǐng)求的幾種方式進(jìn)行了介紹,包括XMLHttpRequest,fetch,axios和jQuery Ajax。

每種方式都有其優(yōu)缺點(diǎn)以及適用場(chǎng)景,根據(jù)具體的項(xiàng)目需求進(jìn)行選擇能夠帶來(lái)較好的使用體驗(yàn)。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Button點(diǎn)擊事件

一、Button點(diǎn)擊事件是什么?在前端開(kāi)發(fā)中,按鈕是一個(gè)非常常見(jiàn)的組件。但是,僅僅在頁(yè)面上展示一個(gè)按鈕是不夠的,我們還需要對(duì)按鈕進(jìn)行一些操作...詳情>>

2023-11-20 23:41:26
Vue遮罩層用法介紹

一、遮罩層定義及作用遮罩層是指在網(wǎng)頁(yè)加載或某些特殊情況下,將頁(yè)面上所有元素覆蓋一層進(jìn)行遮擋,使得頁(yè)面上的元素?zé)o法響應(yīng)用戶(hù)操作。遮罩層的...詳情>>

2023-11-20 23:30:38
如何啟動(dòng)Kibana

一、啟動(dòng)Kibana命令啟動(dòng)Kibana最簡(jiǎn)單的方法是運(yùn)行以下命令:bin/kibana這將啟動(dòng)Kibana并將其連接到Elasticsearch實(shí)例。默認(rèn)情況下,Kibana運(yùn)行...詳情>>

2023-11-20 22:15:02
詳解atan2f函數(shù)

一、atan2返回atan2函數(shù)是C++中的數(shù)學(xué)函數(shù)之一,它的作用是計(jì)算出兩個(gè)坐標(biāo)點(diǎn)之間的夾角。在計(jì)算機(jī)圖像學(xué)領(lǐng)域中,使用atan2函數(shù)非常廣泛。在使用...詳情>>

2023-11-20 21:57:03
詳解pd.cut函數(shù)

一、pd.cut用法pd.cut()是一個(gè)用于將連續(xù)變量轉(zhuǎn)換成離散變量的函數(shù),通俗地說(shuō)就是將一組數(shù)據(jù)按照一定的規(guī)則自動(dòng)分成幾段,然后用這幾段來(lái)表示原...詳情>>

2023-11-20 21:31:50
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲一区二区天堂 | 偷拍视频一区二区三区 | 欧美日韩国产在线观看网站 | 日本亚洲欧美高清专区vr专区 | 亚洲26uuu在线观看 | 中文字幕欧洲另类二区 |