前端項目開發,3個HTTP請求工具

這一小節,我們介紹一下前端項目開發中,HTTP請求會用到的3個工具,分別是fetchaxiosjs-tool-big-box中的jsonp請求。那么他們都有哪些小區別呢?我們一起來看一下。

目錄

1 fetch

2 axios

3 js-tool-big-box 的 jsonp 請求

3.1 安裝js-tool-big-box工具庫

3.2 導入使用


1 fetch

  1. 瀏覽器內置,無需額外安裝fetch是現代瀏覽器內置的API,不需要額外的庫或依賴,對于一些簡單的項目或者不希望增加打包體積的項目,fetch是一個輕量級的選擇。

  2. 簡單請求: 如果你的請求邏輯比較簡單,不需要復雜的配置或處理,比如簡單的GET請求和POST請求,fetch足夠滿足需求。

  3. 現代瀏覽器環境: 由于fetch是ES6+時代的API,支持Promise,所以在現代瀏覽器環境中使用fetch可以獲得更簡潔的代碼。

fetch('https://api.example.com/data').then(response => {if (!response.ok) {throw new Error('Network response was not ok ' + response.statusText);}return response.json();}).then(data => console.log(data)).catch(error => console.error('There has been a problem with your fetch operation:', error));

2 axios

  1. 復雜的請求需求axios提供了更多功能和配置選項,例如請求和響應攔截器、取消請求、自動轉換JSON數據、處理并發請求等。如果你的項目中需要處理這些復雜的需求,axios是更好的選擇。

  2. 兼容性需求axios支持更多的瀏覽器,包括一些舊版瀏覽器,如果你的項目需要兼容更多類型的瀏覽器,axios可能更合適。

  3. 更好的錯誤處理axios在處理HTTP錯誤狀態碼(如404,500等)時,比fetch更方便,因為fetch即使在返回404或500狀態碼時也不會被標記為reject,仍需要手動檢查響應的狀態碼。

  4. 更好的請求配置和默認設置axios允許設置全局默認配置,可以在創建實例時配置baseURL、timeout等選項,簡化多次請求時的配置工作。

import axios from 'axios';axios.get('https://api.example.com/data').then(response => console.log(response.data)).catch(error => console.error('There has been a problem with your axios operation:', error));

3 js-tool-big-box 的 jsonp 請求

說到jsonp請求,大家就會想到跨域,如果服務端沒有做CROS的跨域設置,而是要通過JSONP跨域請求的方式,那么這個工具庫會非常合適。

再下面的示例代碼中,我們本站的IP是localhost,端口是8080,請求服務端目標IP為127.0.0.1,端口為3000,正是屬于跨域場景.

3.1 安裝js-tool-big-box工具庫

npm i?js-tool-big-box

3.2 導入使用

導入 ajaxBox 對象,因為jsonp方法的宿主是 ajaxBox ,導入后就可以使用了。

import { ajaxBox } from 'js-tool-big-box';ajaxBox.sendJSONP('http://127.0.0.1:3000/users/bar', 'callback', function(data){console.log('獲取到的JSONP請求數據', data);
});

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

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

相關文章

拷貝構造、移動構造、拷貝賦值、移動賦值

最近在學習C的拷貝構造函數時發現一個問題:在函數中返回局部的類對象時,并沒有調用拷貝構造函數。針對這個問題,查閱了一些資料,這里記錄整理一下。 調用拷貝構造函數的三種情況: ① 用一個類去初始化另一個對象時&a…

【數據結構與算法 | 基礎篇 | 隊列篇】力扣102, 107

1. 力扣102 : 二叉樹的層序遍歷 (1). 題 給你二叉樹的根節點 root ,返回其節點值的 層序遍歷 。 (即逐層地,從左到右訪問所有節點)。 示例 1: 輸入:root [3,9,20,null,null,15,7] 輸出:[[3]…

對于高速信號完整性,一塊聊聊啊(18)

本文摘錄一篇Allegro進行后仿真的完整流程,可能allegro版本有點老,但整個過程還是描述比較詳細的。 目錄 1、獲取IBIS模型 1.1模型下載 1.2檢查IBIS模型 1.3IBIS轉換為DML 1.4保存DML模型 2、仿真準備 2.1疊層設置 2.2電源網格設置 2.3仿真庫配置 3、仿真 3.1拓撲…

刷爆leetcode第六期

題目一 用隊列實現棧 請你僅使用兩個隊列實現一個后入先出(LIFO)的棧,并支持普通棧的全部四種操作(push、top、pop 和 empty)。 實現 MyStack 類: void push(int x) 將元素 x 壓入棧頂。 int pop() 移除…

【漏洞復現】大華智能物聯綜合管理平臺 fastjson遠程代碼執行漏洞

0x01 產品簡介 大華ICC智能物聯綜合管理平臺對技術組件進行模塊化和松耦合,將解決方案分層分級,提高面向智慧物聯的數據接入與生態合作能力。 0x02 漏洞概述 由于大華智能物聯綜合管理平臺使用了存在漏洞的Fastson組件,未經身份驗讓的攻擊者可利用 /e…

M功能-支付平臺(六)

target:離開柬埔寨倒計時-217day 今天突然發現我在csdn居然把我ip屬地搞出來了,之前都沒注意到,哎 前言 M功能演示版本做到后期(也就是第二周的后面3天)真的很心酸,這邊安排的4后端后面都放棄了,覺得做不出來&#…

ARM-V9 RME(Realm Management Extension)系統架構之系統能力的內存隔離和保護

安全之安全(security)博客目錄導讀 目錄 一、內存隔離和保護 1、顆粒PAS過濾Granular PAS filtering 2、Cache的一致性維護 2.1 物理別名點 Point of Physical Aliasing (PoPA) 2.2 加密點 3、內存(DRAM)保護 3.1 內存加密和完整性 3.2 DRAM scrubbing 本博客探討 RME…

網絡編程 —— Http使用httpClient實現頁面爬蟲

先去找類型的a標簽 取出圖片所在網址 取出https://desk.3gbizhi.com/deskMV/438.html 搭建Form界面 Http類 public static HttpClient Client { get; } static Http() {HttpClientHandler handler new HttpClientHandler();//處理消息對象//ServerCertificateCustomValidat…

安卓手機APP開發___設置鬧鐘

安卓手機APP開發___設置鬧鐘 目錄 概述 設置不精確鬧鐘 在特定時間后發出鬧鐘 在特定時間范圍內觸發鬧鐘 以大致有規律的時間間隔響起重復鬧鐘 設置精確的鬧鐘 系統會在未來的某個精確時刻調用精確鬧鐘。 可能不需要精確鬧鐘的用例 設置精確鬧鐘的方法 系統資源消耗…

萬億應急國債項目之通信指揮類應急裝備多鏈路聚合通信設備在應急行業中的重要作用

萬億應急國債項目的推出,無疑是我國在應急領域的一次重大舉措。在這一宏大藍圖中,通信指揮類應急裝備的多鏈路聚合通信設備顯得尤為重要,其在應急行業中所發揮的作用,堪稱不可或缺的關鍵一環。 通信指揮是應急響應中的核心環節&a…

QT C++ 讀寫mySQL數據庫 圖片 例子

在上篇文章中描述了怎樣搭建讀寫數據庫的環境。 本文更進一步,描述了讀寫mySQL數據庫,字符、整型數字、圖片。讀寫圖片相對難點。 數據庫的圖片字段用BLOB,如果圖片較大要用longblob,否則會報錯。 另外,讀寫數據庫都使用了短連…

Pytorch 星號*放在tensor前的作用

假如有一個多維tensor,名為id,那么*id的意思是什么呢? GPT答: 如果 id 是一個多維張量,那么 *id 在這種情況下會將這個多維張量解包成一個張量序列,其中每個元素都是一個更低維度的張量。具體來說&#x…

圖形學初識--空間變換

文章目錄 前言正文矩陣和向量相乘二維變換1、縮放2、旋轉3、平移4、齊次坐標下總結 三維變換1、縮放2、平移3、旋轉繞X軸旋轉:繞Z軸旋轉:繞Y軸旋轉: 結尾:喜歡的小伙伴可以點點關注贊哦 前言 前面章節補充了一下基本的線性代數中…

前端Vue小兔鮮兒電商項目實戰Day02

一、Pinia快速入門 此處見:Vue從入門到實戰Day12-CSDN博客 二、創建項目并精細化配置 1. 創建項目 2. src目錄調整 ①刪除一些初始化的默認文件 清空assets、components、store、views文件夾下的內容; ②修改剩余代碼內容 router/index.js import …

一個程序員的牢獄生涯(44)詢問

星期一 詢 問 在號子里開始了下午坐班的時候,過道內的大鐵柵欄被管教打開,我聽到開鎖的聲音后,心里變得激動起來。盼望著腳步聲能停在我們的號子門口,然后打開鐵門,喊一聲“眼鏡,出來!”。 通道內這次進來的是秦所,但他并沒有在我們號子門口停留,只是在走過的時候,低…

華為昇騰310 ATC模型轉換工具安裝

參考: https://bbs.huaweicloud.com/blogs/393282?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=other&utm_content=content https://www.hiascend.com/document/detail/zh/canncommercial/601/inferapplicationdev/atctool/atctool_0004.html 1、基本工具…

js知識點之閉包

閉包 什么是閉包 閉包,是 JavaScript 中一個非常重要的知識點,也是我們前端面試中較高幾率被問到的知識點之一。 打開《JavaScript 高級程序設計》和《 JavaScript 權威指南》,會發現里面針對閉包的解釋各執一詞,在網絡上搜索關…

Java中如何指定jdk的版本運行jar包

你的jdk安裝的目錄\bin\java -jar 你的jar包名字.jar 這是我的代碼示例 C:\Users\86177\.jdks\corretto-17.0.10\bin\java -jar big_event_study2-0.0.1- SNAPSHOT.jar

23種設計模式之一— — — —裝飾模式詳細介紹與講解

裝飾模式詳細講解 一、定義二、裝飾模式結構核心思想模式角色模式的UML類圖應用場景模式優點模式缺點 實例演示圖示代碼演示運行結果 一、定義 裝飾模式(別名:包裝器) 裝飾模式(Decorator Pattern)是結構型的設計模式…

LeetCode 每日一題 數學篇 2651.計算列車到站時間

給你一個正整數 arrivalTime 表示列車正點到站的時間(單位:小時),另給你一個正整數 delayedTime 表示列車延誤的小時數。 返回列車實際到站的時間。 注意,該問題中的時間采用 24 小時制。 int findDelayedArrivalTi…