uniapp 微信小程序請求攔截器 接口封裝

前言:
請求攔截器可以在我們需要傳遞請求頭的時候使用,例如:token
也會在當token發生變化的時候給予響應,所以我們做好對應的判斷即可

話不多說,直接進入正題:
1.首先在根目錄創建common文件夾,
在里面創建request.js文件并加入以下代碼:

export default {config: {//baseURL這里可以放自己的接口域名baseURL: "",getToken() {//獲取tokenlet token = uni.getStorageSync("userInfo").token;if (!token) {return uni.reLaunch({ url: "/pages/login/login" });}return token;},//獲取useridgetUser() {let id = uni.getStorageSync("userInfo").id;if (!id) {return uni.reLaunch({ url: "/pages/login/login" });}return id;},// 響應攔截器beforeRequest(options = {}) {return new Promise((resolve, reject) => {//請求的地址 = 上面設置的域名加上接口封裝的地址options.url = this.baseURL + options.url;options.method = options.method || "POST";//添加請求頭options.header = {token: this.getToken(),id: this.getUser(),};resolve(options);});},// 請求攔截器handleResponse(data) {//自行打印data根據data里的數據進行判斷token過期等等if (data.data.code == 0 && data.data.msg == "權限錯誤"){uni.showModal({title: '提示',content: '已掉線,是否重新登錄',showCancel: true,success: ({ confirm, cancel }) => {if(confirm){uni.redirectTo({ url: '/pages/login/login' })}else{}}})}return data;},},// request 請求request(options = {}) {return this.config.beforeRequest(options).then((opt) => {return uni.request(opt);}).then((res) => this.config.handleResponse(res));},
};

2,在common文件夾下接著新建一個example.js文件來當作接口封裝的文件

// api/example.js
import api from "@/common/request.js";
//把我們剛才寫的request.js文件引入過來
export function pubdemo(data) {console.log(data, "傳遞的參數");//使用引入的request發送請求return api.request({//request.js文件里面已經有前綴了所以這里直接寫后面的路徑即可url: "/api/web/Notice/reminder",method: "post",data: data,});
}

3,頁面內使用

      import { pubdemo } from "@/common/example.js";pubdemo({//這里是要傳遞的參數,前面參數名后面參數值id: 12,}).then((res) => {console.log(res.data,res.data);});

對于一些不用傳遞參數的接口直接把變量名里面的對象刪除即可

	  pubdemo().then((res) => {console.log(res.data,res.data);});
微信小程序

微信小程序跟uniapp同理,只需要把某些東西改一下即可

創作不易,留下免費的雙擊關注再走吧~

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

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

相關文章

Selenium 中并行測試的重要性!

隨著技術的進步,測試解決方案變得更具可擴展性,加速了團隊從手動測試到Selenium測試自動化的轉型。但是成年人的世界,沒有什么是容易的。對于許多團隊來說,并行運行多個測試仍然是不可擴展的。他們傾向于遵循傳統的順序執行測試方…

MIT6.5840-2023-Lab2A: Raft-leader election

前置知識 什么是一致性算法? 安全性保證,絕對不會返回一個錯誤的結果;可用性,容忍集群部分節點失敗;不依賴時序來保證一致性;一條指令可以盡可能快的在集群中大多數節點響應一輪遠程過程調用時完成。小部分…

uniapp實戰 —— 可滾動區域 scroll-view (自適配高度,下拉刷新)

自適配高度 自定義的頂部導航欄,可參考博文 https://blog.csdn.net/weixin_41192489/article/details/134852124 如圖可見,在頁面滾動過程中,頂部導航欄和底欄未動,僅中間的內容區域可滾動。 整個頁面的高度設置為 100%&#xf…

鴻蒙開發—學習聲明式UI

基本UI描述 ArkTS通過裝飾器Component和Entry裝飾struct關鍵字聲明的數據結構,構成一個自定義組件。自定義組件中提供了一個build函數,開發者需在該函數內以鏈式調用的方式進行基本的UI描述,UI描述的方法請參考UI描述規范。 基本概念 stru…

GZ029 智能電子產品設計與開發賽題第4套

2023年全國職業院校技能大賽高職組 “GZ029智能電子產品設計與開發”賽項賽卷四 題目:模擬工業傳送帶物品檢測系統的設計與開發 1 競賽任務 在智能電視機上播放工業傳送帶傳輸物品視頻,模擬工業傳送帶物品檢測系統(以下簡稱物品檢測系統&…

DALI1.0學習——BIT解碼

最近在學習DALI調光相關知識并下載了Microchip提供的基于ATMega88PA的軟件工程及硬件設計參考方案。寫這些文章的目的就是把自己對知識的理解作一些梳理。 芯片廠果然專業,考慮得相當周到,為了芯片銷量連軟件和硬件方案全都提供了。芯片廠關于DALI1.0實…

【unity小技巧】實現槍武器隨鏡頭手臂搖擺效果

文章目錄 前言方法一、改變武器位置方法二、改變武器旋轉結語完結 前言 如果我們視角移動轉向,武器如果不跟著進行搖擺,會感覺我們的動作很生硬,特別是射擊類游戲,如下 實現武器搖擺這里主要分享兩種實現方法,一種是…

xtu oj 1271 color

題目描述 Alice在玩一個游戲,她在一個mn的格子里,隨機涂黑k個格子。然后她每次可以把一行或者一列的格子染成紅色,但是這一行中不能有黑色的格子。 請問她最多能把多少個格子涂成紅色? 輸入 第一行是一個整數T(T≤100)&#xf…

華為OD機試 - 數的分解(Java JS Python C)

題目描述 給定一個正整數 n,如果能夠分解為 m(m > 1)個連續正整數之和,請輸出所有分解中,m最小的分解。 如果給定整數無法分解為連續正整數,則輸出字符串"N"。 輸入描述 輸入數據為一整數,范圍為 (1, 2^30] 輸出描述 比如輸入為: 21 輸出: 21=10+11 …

SSD數據在寫入NAND之前為何要隨機化?-Part1

SSD的存儲介質是什么,它就是NAND閃存。那你知道NAND閃存是怎么工作的嗎?其實,它就是由很多個晶體管組成的。這些晶體管里面存儲著電荷,代表著我們的二進制數據,要么是“0”,要么是“1”。NAND閃存原理上是一…

唯創知音WT588F02B語音芯片在電子針療儀中的聲音播放提示應用

在醫療技術領域,電子針療儀作為一種非侵入性的治療設備,被廣泛應用于各種疼痛管理和康復治療。然而,操作電子針療儀需要一定的專業知識和經驗,以確保安全有效的治療。為了解決這一難題,唯創知音WT588F02B語音芯片被應用…

0基礎學java-day14-(集合)

一、集合 前面我們保存多個數據使用的是數組,那么數組有不足的地方,我們分析一下 1.數組 2 集合 數據類型也可以不一樣 3.集合的框架體系 Java 的集合類很多,主要分為兩大類,如圖 :[背下來] package com.hspedu.c…

設計模式之GoF23介紹

深入探討設計模式:構建可維護、可擴展的軟件架構 一、設計模式的背景1.1 什么是設計模式1.2 設計模式的歷史 二、設計模式的分類2.1 創建型模式2.2 結構型模式2.3 行為型模式 三、七大設計原則四、設計模式關系結論 :rocket: :rocket: :rocket: 在軟件開發領域&…

算法:爬樓梯(迭代和動態規劃)

迭代 時間復雜度 O(n) 空間復雜度 O(1) /*** param {number} n* return {number}*/ var climbStairs function(n) {let l 0, r 0 , sum 1for(let i1; i<n; i){l rr sumsum l r}return sum }; 動態規劃 時間復雜度 O(n) 空間復雜度 O(n) /*** param {number} n* r…

Memcached學習

一、概念 Memcached是一個開源的&#xff0c;高性能的內存緩存軟件&#xff0c;從名稱上看Mem就是內存&#xff0c;二cache是緩存。作用通過在事先規劃好的內存空間中臨時緩存數據庫中的各類數據&#xff0c;以達到減少業務對數據庫的直接高并發訪問&#xff0c;從而達到提升數…

【密碼學基礎】Diffie-Hellman密鑰交換協議

DH介紹 Diffie-Hellman密鑰協議算法是一種確保共享密鑰安全穿越不安全網絡的方法。 這個機制的巧妙在于需要安全通信的雙方可以用這個方法確定對稱密鑰&#xff0c;然后可以用這個密鑰進行加密和解密。 但是注意&#xff0c;這個密鑰交換協議 只能用于密鑰的交換&#xff0c;而…

Java面試題(每天10題)-------連載(45)

Dubbo篇 1、Dubbo的服務調用流程 2、Dubbo支持那種協議&#xff0c;每種協議的應用場景&#xff0c;優缺點&#xff1f; dubbo&#xff1a; 單一長連接和 NIO 異步通訊&#xff0c;適合大并發小數據量的服務調用&#xff0c;以及消費者遠大于提供者。傳輸協議 TCP&#xff0c;…

Proteus仿真--射擊小游戲仿真設計

本文介紹基于proteus射擊小游戲仿真設計&#xff08;完整仿真源文件及代碼見文末鏈接&#xff09; 仿真圖如下 K1-K4為4個按鍵&#xff0c;用于上移、下移、確認等&#xff0c;模擬單機游戲 仿真運行視頻 Proteus仿真--射擊小游戲仿真設計 附完整Proteus仿真資料代碼資料 …

ArcGIS界面顯示分辨率調整

因為電腦顯示分辨率的問題呢&#xff0c;ArcGIS的界面顯示會字體顯示不合適&#xff0c;出現模糊情況&#xff0c;這時候只需要做個簡單的操作設置一下便可以解決&#xff01; 1、右鍵ArcMap的快捷啟動方式。 2、對應選擇兼容性——>更高DPI設置——>勾選替代DPI縮放行為…

自然場景圖像中的文本檢測綜述

摘 要 本文對自然場景文本檢測問題及其方法的研究進展進行了綜述. 首先, 論述了自然場景文本的特點、自然場景文本檢測技術的研究背景、現狀以及主要技術路線. 其次, 從傳統文本檢測以及深度學習文本檢測的視角出發, 梳理、分析并比較了各類自然場景文本檢測方法的優缺點, 并介…