JavaScript的fetch函數的用法

基本語法

fetch函數用于發起網絡請求,返回一個Promise對象。基本語法如下:

fetch(url, options).then(response => response.json()).then(data => console.log(data)).catch(error => console.error('Error:', error));

GET請求

發起一個簡單的GET請求,獲取JSON數據:

fetch('https://api.example.com/data').then(response => {if (!response.ok) {throw new Error('Network response was not ok');}return response.json();}).then(data => console.log(data)).catch(error => console.error('Error:', error));

POST請求

發送JSON數據到服務器:

fetch('https://api.example.com/data', {method: 'POST',headers: {'Content-Type': 'application/json',},body: JSON.stringify({key1: 'value1',key2: 'value2'})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

處理響應

fetch返回的Response對象包含多種方法處理不同格式的響應:

fetch('https://api.example.com/data').then(response => {if (response.ok) {return response.text(); // 或.json(), .blob(), .arrayBuffer()等}throw new Error('Network response was not ok');}).then(data => console.log(data)).catch(error => console.error('Error:', error));

錯誤處理

由于fetch只在網絡錯誤時reject,需要手動處理HTTP錯誤狀態:

fetch('https://api.example.com/data').then(response => {if (!response.ok) {throw new Error(`HTTP error! status: ${response.status}`);}return response.json();}).then(data => console.log(data)).catch(error => console.error('Error:', error));

請求配置

可配置的選項包括method、headers、body、mode、credentials等:

fetch('https://api.example.com/data', {method: 'POST',headers: {'Content-Type': 'application/json','Authorization': 'Bearer token'},body: JSON.stringify({key: 'value'}),credentials: 'include' // 包含cookies
});

取消請求

使用AbortController可以取消fetch請求:

const controller = new AbortController();
const signal = controller.signal;fetch('https://api.example.com/data', {signal}).then(response => response.json()).then(data => console.log(data)).catch(error => {if (error.name === 'AbortError') {console.log('Fetch aborted');} else {console.error('Error:', error);}});// 取消請求
controller.abort();

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92936.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92936.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92936.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Json和XML文件相互轉化

目錄 一.XML轉Json文件 示例:將XML轉換為JSON 依賴準備 Java代碼示例 代碼詳細講解 二.Json轉XML文件 示例:將JSON轉換為XML 依賴準備 Java代碼示例 代碼詳細講解 關鍵代碼解析 將JSON轉換為XML 寫入文件 示例輸入與輸出 三.具有相同功能的…

Python科學計算與可視化領域工具TVTK、Mayavi、Mlab、Traits(附視頻教程)

概述 TVTK、Mayavi、Mlab 和 Traits 都是 Python 科學計算與可視化領域中緊密相關的工具,它們常被結合使用來處理和展示三維數據。視頻教程:https://pan.quark.cn/s/f73e875225ca 1. TVTK TVTK(Traits-based Visualization Toolkit&#xff0…

SQL INSERT INTO SELECT 詳解

SQL INSERT INTO SELECT 詳解 引言 SQL(Structured Query Language)是數據庫操作的基礎語言,廣泛用于各種關系型數據庫管理系統中。在SQL中,INSERT INTO SELECT 是一個強大的功能,它允許用戶從一個表中選取數據,并直接將這些數據插入到另一個表中。本文將詳細講解 SQL …

python速成學習路線

第一部分:核心基礎(語法與工具) 目標:掌握 Python 的基本語法規則、數據處理方式和開發工具 核心內容: 環境搭建 安裝Python 3.x版本(推薦3.10)配置開發工具(如PyCharm、VS Code或…

自然語言處理的實際應用

在這個信息爆炸的時代,我們每天都在與文字、語音打交道 —— 發送消息、查詢信息、使用智能助手…… 這些看似平常的互動背后,都離不開一項關鍵技術的支撐:自然語言處理(NLP)。作為人工智能的重要分支,NLP …

Docker實戰:為項目打造即開即用的寶塔LNMP環境

Docker實戰:為項目打造即開即用的寶塔LNMP環境背景一、準備基礎鏡像二、啟動配置容器(關鍵步驟)三、容器內環境配置(逐步執行)1. 基礎環境搭建2. 安裝Systemd(寶塔依賴)3. 安裝寶塔面板&#xf…

.net\c#web、小程序、安卓開發之基于asp.net家用汽車銷售管理系統的設計與實現

.net\c#web、小程序、安卓開發之基于asp.net家用汽車銷售管理系統的設計與實現

藥房智能盤庫系統:基于CV與時間序列預測的庫存革命

> 在醫療資源日益緊張的今天,**全國78%的藥房仍依賴人工盤庫**,平均每100家藥房每年因庫存問題損失超50萬元。當計算機視覺遇見時間序列預測,一場藥房庫存管理的智能化革命正在悄然發生。 --- ### 一、傳統藥房庫存的三大痛點與破局思路 #### 致命痛點分析 1. **人工…

【互動屏幕】解析雙屏聯動在數字展廳中的應用與價值

雙屏聯動 https://www.bmcyzs.com/ 作為現代展廳設計中的重要技術手段,通過兩塊或多塊屏幕的協同工作,實現了信息的動態展示與交互體驗的提升。在展廳環境中,雙屏聯動軟件能夠將觸摸屏與大屏幕無縫連接,使觀眾通過簡單的操作即可控…

clickhouse基礎概念及集群部署

一. 簡述: ClickHouse 是一款高性能列式存儲數據庫,專為海量數據的實時分析場景設計。它以極致的查詢速度、高效的存儲利用率和強大的并行處理能力著稱,廣泛應用于日志分析、用戶行為分析、業務監控等大數據分析領域。1. 核心特性&#xff1a…

低版本 IntelliJ IDEA 使用高版本 JDK 語言特性的問題

現實問題: 目前最新的 IntelliJ IDEA 已經不支持在 Win7 環境上安裝了,如果企業內開發環境仍然是 Win7,就會導致很多問題。 比如當前 IDEA 版本為 2023.1,最大支持 JDK17,如何正常使用 JDK21 的新特性呢?比…

3分鐘 Spring AI 實現對話功能

1.什么是spring AISpring AI 是 Spring 官方推出的一個基于 Spring 生態的 AI 應用開發框架,旨在簡化將人工智能(如大語言模型、生成式 AI)集成到 Java 應用中的過程。它提供了統一的 API 和工具,讓開發者能更輕松地調用 AI 模型2…

CMake筆記:配置(Configure)、生成(Generate)和構建(Build)

以下為AI生成的內容&#xff1a; 一、配置階段&#xff08;Configure&#xff09; 本質&#xff1a;解析項目邏輯&#xff0c;構建內存模型 觸發命令&#xff1a;cmake -S <源碼路徑> -B <構建路徑> 關鍵操作與輸出&#xff1a;操作類型典型案例輸出產物變量定義se…

直接編輯pdf文件教程

工具下載地址&#xff1a;https://pan.quark.cn/s/4befbe5f4a77 一、下載并安裝軟件二、打開軟件&#xff0c;并打開一個pdf文件三、編輯PDF文件&#xff0c;并保存四、關閉軟件&#xff0c;打開源文件查看效果。

javaswing json格式化工具

效果展示代碼 package com.example.springbootdemo;import javax.swing.*; import javax.swing.border.TitledBorder; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeSelectionModel; import java.…

真實案例 | 如何用iFlyCode開發Webpack插件?

01案例背景在項目中&#xff0c;我們經常需要存檔前端每次打包的版本&#xff0c;方便線上快速切換不同版本使用。經過思考&#xff0c;我們可以在打包時&#xff0c;將本次打包結果另存為zip壓縮包&#xff0c;方便后續使用。于是我準備開發一個Webpack插件實現此功能&#xf…

19day-人工智能-機器學習-分類算法-決策樹

1. 什么是決策樹學過數據結構與算法的小伙伴應該對樹不陌生吧&#xff0c;這里的決策樹也是大同小異的&#xff0c;只是每次反之都有一個條件來決定流向的。1.1 決策節點通過條件判斷而進行分支選擇的節點。如&#xff1a;將某個樣本中的屬性值(特征值)與決策節點上的值進行比較…

地球磁層全球MHD模型中模擬Dst指數的半經驗方法

A semi-empirical approach to simulating the Dst index in global MHD models of Earth’s magnetosphere pdf 1 Introduction Dst指數 (Disturbance storm time index, 地磁暴時擾動指數) 是描述磁暴活動強度應用最廣泛的指數&#xff0c;對于研究地磁擾動和磁暴具有重要意…

什么是臟讀、幻讀、不可重復讀?

臟讀、幻讀和不可重復讀是數據庫事務隔離級別中常見的三種數據一致性問題。它們描述了在并發事務環境下可能出現的異常現象。下面通過對比表格和具體示例進行清晰解析&#xff1a;核心概念對比表問題類型觸發場景本質原因示例臟讀 (Dirty Read)事務A讀取了事務B未提交的修改讀取…

騰訊位置商業授權微信小程序關鍵詞輸入提示

微信小程序JavaScript SDK 開發指南 關鍵詞輸入提示 getSuggestion(options:Object) 用于獲取輸入關鍵字的補完與提示&#xff0c;幫助用戶快速輸入 注&#xff1a;坐標系采用gcj02坐標系 options屬性說明 屬性類型必填說明keywordString是用戶輸入的關鍵詞&#xff08;希望…