Axios使用方式

ajax是JQUERY封裝的XMLHttprequest用來發送http請求

Axios簡單點說它就是一個js庫,支持ajax請求,發送axios請求功能更加豐富,豐富在哪不知道

1.npm使用方式

? ? ? ?vue項目中 npm install axios

2.cdn方式

????????<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

????????<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

3.使用本地文件

????????<script src="js/axios.min.js"></script>

axios 帶有攔截器功能:分別是請求攔截器? ?應答攔截器(就是響應攔截器)

第三種方式需要將axios文件下載到本地,下載方式

GITHUB上下載? ?地址?GitHub - axios/axios: Promise based HTTP client for the browser and node.js

在 GitHub 倉庫頁面,點擊 "Code" 按鈕,然后選擇 "Download ZIP" 以下載包含所有文件的壓縮文件。

解壓下載的 ZIP 文件。

在解壓后的文件夾中,你可以在 dist 文件夾中找到 axios.min.js 文件。

解壓后點進去dist 文件夾中找到 axios.min.js 文件。

下面用VsCode練習下axios

1.GET無參

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>Document</title>

? ? <!-- 引入axios -->

? ? <script src="js/axios.min.js"></script>

? ? <!-- <script src="https://unpkg.com/axios/dist/axios.min.js"></script> ?-->

? ? <!-- <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> -->

</head>

<body>

? ? <button οnclick="fn1()">使用axios發送get請求,無參數</button>

? ? <script>

? ? ? ?

//get無參請求 ?axios格式: axios.get(url).then().catch().finally()

? ? ? ? function fn1(){

? ? ? ? ? ? var url="http://localhost:8000/api/v1/product/index";

? ? ? ? ? ? axios.get(url).then(res=>{

? ? ? ? ? ? ? ? console.log(res)

? ? ? ? ? ? }).catch(err=>{

? ? ? ? ? ? ? ? console.log(err) ? ?

? ? ? ? ? ? }).finally(()=>{

? ? ? ? ? ? ? ? console.log("一定執行的代碼")

? ? ? ? ? ? })

? ? ? ? }

? ? </script>

</body>

</html>

這是因為跨域問題

2.GET請求帶參數

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>Document</title>

? ? <!-- 引入axios -->

? ? <script src="js/axios.min.js"></script>

? ? <!-- <script src="https://unpkg.com/axios/dist/axios.min.js"></script> ?-->

? ? <!-- <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> -->

</head>

<body>

? ? <button οnclick="fn1()">使用axios發送get請求,無參數</button>

? ? <button οnclick="fn2()">使用axios發送get請求,帶參數</button>

? ? <script>

? ? ? ? //get無參請求 ?axios格式: axios.get(url).then().catch().finally()

? ? ? ? function fn1(){

? ? ? ? ? ? var url="http://localhost:8000/api/v1/product/list";

? ? ? ? ? ? axios.get(url).then(res=>{

? ? ? ? ? ? ? ? console.log(res)

? ? ? ? ? ? }).catch(err=>{

? ? ? ? ? ? ? ? console.log(err) ? ?

? ? ? ? ? ? }).finally(()=>{

? ? ? ? ? ? ? ? console.log("一定執行的代碼")

? ? ? ? ? ? })

? ? ? ? }

? ? ? ? function fn2(){

? ? ? ? ? ? var pType=1;

? ? ? ? ? ? var pageNum=1;

? ? ? ? ? ? var pageSize=3;

? ? ? ? ? ? var url="http://localhost:8000/api/v1/product/list?pType="+pType+"&pageNum="+pageNum+"&pageSize="+pageSize;

? ? ? ? ? ? axios.get(url).then(res=>{

? ? ? ? ? ? ? ? console.log(res)

? ? ? ? ? ? }).catch(err=>{

? ? ? ? ? ? ? ? console.log(err) ? ?

? ? ? ? ? ? }).finally(()=>{

? ? ? ? ? ? ? ? console.log("一定執行的代碼")

? ? ? ? ? ? })

? ? ? ? }

? ? </script>

</body>

</html>

上面這樣是傳統傳參方式

axios使用配置項目params

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <title>Document</title>

? ? <!-- 引入axios -->

? ? <script src="js/axios.min.js"></script>

? ? <!-- <script src="https://unpkg.com/axios/dist/axios.min.js"></script> ?-->

? ? <!-- <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> -->

</head>

<body>

? ? <button οnclick="fn1()">使用axios發送get請求,無參數</button>

? ? <button οnclick="fn2()">使用axios發送get請求,帶參數</button>

? ? <button οnclick="fn3()">使用axios發送get請求,帶參數,使用axios配置項方式</button>

? ? <script>

? ? ? ? //get無參請求 ?axios格式: axios.get(url).then().catch().finally()

? ? ? ? function fn1(){

? ? ? ? ? ? var url="http://localhost:8000/api/v1/product/list";

? ? ? ? ? ? axios.get(url).then(res=>{

? ? ? ? ? ? ? ? console.log(res)

? ? ? ? ? ? }).catch(err=>{

? ? ? ? ? ? ? ? console.log(err) ? ?

? ? ? ? ? ? }).finally(()=>{

? ? ? ? ? ? ? ? console.log("一定執行的代碼")

? ? ? ? ? ? })

? ? ? ? }

? ? ? ? function fn2(){

? ? ? ? ? ? var pType=1;

? ? ? ? ? ? var pageNum=1;

? ? ? ? ? ? var pageSize=3;

? ? ? ? ? ? var url="http://localhost:8000/api/v1/product/list?pType="+pType+"&pageNum="+pageNum+"&pageSize="+pageSize;

? ? ? ? ? ? axios.get(url).then(res=>{

? ? ? ? ? ? ? ? console.log(res)

? ? ? ? ? ? }).catch(err=>{

? ? ? ? ? ? ? ? console.log(err) ? ?

? ? ? ? ? ? }).finally(()=>{

? ? ? ? ? ? ? ? console.log("一定執行的代碼")

? ? ? ? ? ? })

? ? ? ? }

? ? ? ? function fn3(){

? ? ? ? ? ? var pType=1;

? ? ? ? ? ? var pageNum=1;

? ? ? ? ? ? var pageSize=3;

? ? ? ? ? ? var url="http://localhost:8000/api/v1/product/list";

? ? ? ? ? ? axios.get(url,{

? ? ? ? ? ? ? ? params:{

? ? ? ? ? ? ? ? ? ? pType:pType,

? ? ? ? ? ? ? ? ? ? pageNum:pageNum,

? ? ? ? ? ? ? ? ? ? pageSize:pageSize

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }).then(res=>{

? ? ? ? ? ? ? ? console.log(res)

? ? ? ? ? ? }).catch(err=>{

? ? ? ? ? ? ? ? console.log(err) ? ?

? ? ? ? ? ? }).finally(()=>{

? ? ? ? ? ? ? ? console.log("一定執行的代碼")

? ? ? ? ? ? })

? ? ? ? }

? ? </script>

</body>

</html>

params是一個{}對象? ?

那么也可以

var data={

? ? ? ? xxx:xxx

? ? ? ? yyy:yyy

}

然后里面

params:data 即可

例如

Axios發送POST請求

后端接收可以是單個接收? 也可以是實體類

用AXIOS發送Post請求? ? application/json

后端接收

這個請求會發送預請求? ? 實際上是兩個請求

? ? ?預請求

AXIOS也可以像ajax那樣配置項的方式發送請求

下面兩種方式使用POST? ? PUT? ?PATCH

這種方式默認Content-Type是application/json

AXIOS的返回值

AXIOS的攔截器

攔截器分兩種,分別是

請求攔截器:在發起請求之前執行,可以對請求內容做修改,比如增加參數,設置請求頭等等

應答攔截器(相應攔截器):服務器返回結果,AXIOS的then之前先執行,可以對應答內容做處理

請求攔截器寫法

axios.interceptors.request.use(function(xxx){? ? ?記得return xxx},function(yyy) {如果錯誤做錯誤處理});

響應攔截器

AXIOS進行全局默認配置

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

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

相關文章

【三維幾何學習】自制簡單的網格可視化軟件 — Mesh Visualization

自制簡單的網格可視化軟件 — Mesh Visualization 引言一、整體框架1.1 三角形網格1.2 界面管理1.3 VTK可視化界面 二、核心源碼2.1 三角形網格&#xff1a;TriMesh類2.2 界面Widget_Mesh_Manager2.3 VTK可視化2.4 main 引言 使用PyQt自制簡單的網格可視化軟件 - 視頻展示 本是…

Node.js入門指南(一)

目錄 Node.js入門 什么是Node.js Node.js的作用 Node.js安裝 Node.js編碼注意事項 Buffer(緩沖器&#xff09; 定義 使用 fs模塊 概念 文件寫入 文件讀取 文件移動與重命名 文件刪除 文件夾操作 查看資源狀態 路徑問題 path模塊 Node.js入門 什么是Node.js …

2023最新面試題

第一家 自我介紹介紹一下最近一個&#xff08;最熟悉的一個&#xff09;項目 項目幾個人在負責 項目實際在用了嗎&#xff0c;哪個平臺在用啊&#xff08;在哪里上線&#xff09; 你認為你自己做的項目里面哪個比較難做呢&#xff0c;項目里面有什么難點&#xff1f;常用的是V…

安卓隱私指示器學習筆記

最近了解到Google 在Android12上新增了權限指示器&#xff0c;可以在信號欄的右側顯示當前訪問錄音機和Camera的應用&#xff0c;點擊后可以跳轉到相應應用的權限界面&#xff0c;消費者可以控制權限的開啟和關閉。國內手機廠商最近幾年都在增加隱私看板供能&#xff0c;消費者…

java 中漢字轉拼音

需要引入的jar <!-- pinyin --><dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version></dependency> 實現工具類 package com.julong.util;import java.util.regex…

編程語言發展史:高級語言的興起

一、高級語言的定義 高級語言是相對于匯編語言而言的&#xff0c;它是一種更加抽象、更加易于理解和使用的計算機編程語言。高級語言的特點是語法簡單、易于學習、易于使用、可讀性強、可移植性好等。高級語言的出現極大地提高了程序員的工作效率&#xff0c;同時也使得計算機…

Qt connect()方法Qt::ConnectionType

connect() Qt&#xff0c;綁定信號和槽原型&#xff1a; static QMetaObject::Connection connect(const QObject *sender, const char *signal,const QObject *receiver, const char *member, Qt::ConnectionType Qt::AutoConnection);static QMetaObject::Connection conn…

JSP:Javabean

起初&#xff0c;JavaBean的目的是為了將可以重復使用的代碼進行打包&#xff0c;在傳統的應用中&#xff0c;JavaBean主要用于實現一些可視化界面&#xff0c;如一個窗體、按鈕、文本框等&#xff0c;這樣的JavaBean稱之可視化的JavaBean。 隨著技術的不斷發展與項目的需求&am…

防火墻部署模式 -- 鏡像流量(旁路模式)

鏡像流量&#xff08;旁路模式&#xff09; 如圖&#xff0c;與單臂路由模式不同&#xff0c;旁路模式中&#xff0c;PC的流量不會流經防火墻&#xff0c;就算防火墻宕機也不會影他們之間的數據傳輸。 鏡像的原理是交換機把被鏡像端口的流量復制一份&#xff0c;發到監聽端口&…

尋找二叉樹最近公共祖先

二叉樹為BST LCR 193. 二叉搜索樹的最近公共祖先 1.1 遞歸 利用BST的性質 p root 或者 q root ,顯然根為公共祖先p < root < q 或者 p > root > q,顯然p&#xff0c;q分別位于root的一顆子樹上&#xff0c;故根為公共祖先max{p,q} < root ,顯然 p 和q 均在…

基于單片機聲光控智能路燈系統仿真設計

**單片機設計介紹&#xff0c; 基于單片機聲光控智能路燈系統仿真設計 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于單片機的聲光控智能路燈系統是一種利用單片機技術實現智能控制的路燈系統。它通過感知環境音量和光照強度…

Axios 請求響應結果的結構

發送請求 this.$axios.get(https://apis.jxcxin.cn/api/title?urlhttps://apis.jxcxin.cn/,{params: {id: 10}}).then(res > {console.log(res)})輸出返回結果 confing 請求時的配置對象&#xff0c;如果請求的url&#xff0c;請求的方法&#xff0c;請求的參數&#xff0c…

深入理解Java注解的實現原理以及前世今生

深入理解Java注解的實現原理以及前世今生 小雪初寒&#xff0c;請添衣&#xff0c;冬棋如意&#xff0c;待良人&#xff0c;望歸期。 1.Java注解的前世今生 Java注解是一種元數據標記&#xff0c;它提供了一種在Java代碼中添加元數據&#xff08;注釋&#xff09;的方式。注解…

Linux文件

目錄 一、基本概念 二、研究進程和被打開文件的關系 &#xff08;一&#xff09;w方式 &#xff08;二&#xff09;a方式 三、認識系統接口&#xff0c;操作文件 &#xff08;一&#xff09;認識文件描述符 &#xff08;二&#xff09;舉例 &#xff08;三&#xff09;…

2023年中國油墨樹脂主要環節、產量及市場規模分析[圖]

油墨樹脂是指用于油墨制造中的一種高分子材料&#xff0c;主要用于改善油墨的粘性、流動性、光澤度和耐磨性等性能。其主要成分為合成樹脂&#xff0c;如聚酯、聚酰胺、聚丙烯酸酯等。油墨樹脂在油墨制造中的應用非常廣泛&#xff0c;可以用于各種類型的油墨&#xff0c;包括印…

github訪問不了問題

git clone github上的項目的時候&#xff0c;不是訪問不了&#xff0c;就是克隆過程被中斷了 最近找到一個代理&#xff0c;從代理那里clone而不是github上 GitHub代理 – 初果編程

python BDD 的相關概念

在Python 語言中進行BDD的規格和測試文件的編寫的時候&#xff0c;常常會遇到下面的概念&#xff1a; Fixture : 測試設施。設定測試環境的預設狀態或值的機制。Background&#xff1a; 背景。所有場景的公共部分。Scenario&#xff1a; 場景。Given &#xff1a; 前置條件Whe…

centos7 安裝node.js,不用wget也不用解壓文件

更新系統&#xff1a;首先&#xff0c;更新系統的軟件包列表和已安裝的軟件包。在終端中以root用戶或具有sudo權限的用戶身份運行以下命令&#xff1a; sudo yum update添加Node.js源&#xff1a;CentOS 7默認的軟件倉庫中可能不包含最新的Node.js版本。因此&#xff0c;我們需…

[leetcode 數位運算] 2939. 最大異或乘積 M

給你三個整數 a &#xff0c;b 和 n &#xff0c;請你返回 (a XOR x) * (b XOR x) 的 最大值 且 x 需要滿足 0 < x < 2n。 由于答案可能會很大&#xff0c;返回它對 109 7 取余 后的結果。 注意&#xff0c;XOR 是按位異或操作。 示例 1&#xff1a; 輸入&#xff1…

git中的分支管理:git branch,git checkout,解決git中的分支沖突的方法【Git學習三】

&#x1f601; 作者簡介&#xff1a;一名大四的學生&#xff0c;致力學習前端開發技術 ??個人主頁&#xff1a;夜宵餑餑的主頁 ? 系列專欄&#xff1a;Git等軟件工具技術的使用 &#x1f450;學習格言&#xff1a;成功不是終點&#xff0c;失敗也并非末日&#xff0c;最重要…