小程序入門:數據請求全解析

在微信小程序開發中,數據請求是實現豐富功能的關鍵環節。本文將帶你深入了解小程序數據請求的相關知識,包括請求限制、配置方法以及不同請求方式的實現,還會介紹如何在頁面加載時自動請求數據,同時附上詳細代碼示例,讓你輕松掌握小程序數據請求技巧。

一、小程序數據請求的限制

(一)僅支持 HTTPS 接口

出于安全考慮,小程序官方規定只能請求 HTTPS 類型的接口。在傳統網頁開發中,我們既可以使用普通的 HTTP 協議接口,也能使用 HTTPS 協議接口。但小程序為保障用戶數據安全,將接口請求限定為 HTTPS,這意味著開發者在選擇數據接口時,必須確保接口采用 HTTPS 協議。

(二)域名需添加到信任列表

與網頁開發直接調用 Ajax 請求接口不同,在小程序里,若要請求某個域名下的接口,必須先將該接口的域名添加到信任列表中。具體操作可通過微信開發者工具實現,點擊工具欄右上角的 “詳情” 按鈕,在彈出的右側面板中選擇 “項目配置”,找到 “request 合法域名” 選項進行設置。默認情況下,該列表為空,若未添加域名,小程序無法請求任何接口。例如,若想請求百度 API 的接口,就需要先把百度 API 對應的域名配置到 “request 合法域名” 列表里。

二、配置 request 合法域名

(一)配置步驟
  1. 登錄微信小程序管理后臺。
  2. 在左側列表中找到 “開發” 選項并點擊。
  3. 在右側頁面主體中,找到 “開發設置” 下的 “服務器域名”。
  4. 點擊 “request 合法域名” 右側的 “修改” 鏈接,通過手機微信掃碼確認身份后,在彈出的配置面板中添加所需域名。如果需要請求多個域名下的接口,可點擊 “加號” 添加。注意,域名必須是真實有效的,且只能使用 HTTPS 協議,不能使用 IP 地址或localhost。
  5. 填寫完域名后,點擊 “保存并提交”。此時回到微信開發者工具,點擊 “詳情”-“項目配置”,若面板自動刷新,就表明配置成功,可以請求相應域名下的接口了。

(二)注意事項

  1. 域名協議限制:僅支持 HTTPS 協議。
  2. 禁止使用特定地址:不能使用 IP 地址(如 127.0.0.1)和localhost。
  3. 域名備案要求:域名必須經過 ICP 備案,前端開發者只需知曉該要求,具體備案流程與后端相關。
  4. 修改次數限制:服務器域名一個月以內最多可以申請修改五次,使用完修改次數后,當月無法再進行修改,所以修改時需謹慎操作。

三、發起?GET 請求

在小程序中發起 GET 請求,可調用微信官方提供的wx.request方法。wx是小程序中的頂級全局對象,無需聲明即可直接調用。具體步驟如下:

  1. 在頁面的.wxml文件中定義一個按鈕,用于觸發請求。
<button bindtap="getInfo">發起GET請求</button>
  1. 在頁面的.js文件中定義事件處理函數,并在函數內部使用wx.request發起 GET 請求。
Page({getInfo: function() {wx.request({url: 'https://3w.escook.cn/api/get', // 請求的接口地址,需為HTTPS協議且在合法域名列表中method: 'GET', // 請求方式為GETdata: { // 發送到服務器的數據name: '張三',age: 20},success: (res) => { // 成功后的回調函數console.log(res.data); // 打印服務器返回的真實數據}});}
});

點擊按鈕后,通過調試器面板的終端可查看服務器返回的數據。如果打印出的數據包含預期信息,如message: 'get',則證明 GET 請求成功,且發送到服務器的數據也被正確返回。

四、發起 POST 請求

小程序中發起 POST 請求與 GET 請求類似,同樣使用wx.request方法,只是需要將method指定為POST。具體實現步驟如下:

  1. 在頁面的.wxml文件中新增一個按鈕,并綁定對應的點擊事件。
<button bindtap="postInfo">發起POST請求</button>
  1. 在頁面的.js文件中定義 POST 請求的事件處理函數。
Page({postInfo: function() {wx.request({url: 'https://3w.escook.cn/api/post', // POST請求的接口地址method: 'POST', // 請求方式為POSTdata: { // 提交到服務器的數據name: '李四',age: 33},success: (res) => { // 成功后的回調函數console.log(res.data); // 打印服務器返回的真實數據}});}
});

點擊按鈕后,在調試器終端查看打印結果。若能看到包含message: 'post'以及發送的數據(如name: '李四'age: 33),則表明 POST 請求成功。

五、頁面加載時請求數據

在很多場景下,我們希望頁面剛加載時就自動請求初始化數據。此時,可以在小程序頁面的onLoad事件中調用獲取數據的函數。例如,在home.js文件中,找到onLoad事件:

Page({onLoad: function() {this.getInfo(); // 調用GET請求函數this.postInfo(); // 調用POST請求函數},getInfo: function() {// GET請求代碼,同上文},postInfo: function() {// POST請求代碼,同上文}
});

這樣,當頁面加載成功時,就會自動發起 GET 和 POST 請求,獲取所需數據。

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

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

相關文章

開源版gpt4o 多模態MiniGPT-4 實現原理詳解

MiniGPT-4是開源的GPT-4的平民版。本文用帶你快速掌握多模態大模型MiniGPT-4的模型架構、訓練秘訣、實戰亮點與改進方向。 1 模型架構全景&#xff1a;三層協同 &#x1f4ca; 模型底部實際輸入圖像&#xff0c;經 ViT Q-Former 編碼。藍色方塊 (視覺編碼器)&#xff1a;左側…

Flutter基礎(控制器)

第1步&#xff1a;找個遙控器&#xff08;創建控制器&#xff09;? // 就像買新遙控器要裝電池 TextEditingController myController TextEditingController(); ??第2步&#xff1a;連上你的玩具&#xff08;綁定到組件&#xff09;?? TextField(controller: myContro…

Spring Boot使用Redis常用場景

Spring Boot使用Redis常用場景 一、概述&#xff1a;Redis 是什么&#xff1f;為什么要用它&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一個內存中的數據存儲系統&#xff08;類似一個“超級大字典”&#xff09;&#xff0c;它能存各種類型的數據…

CAD文件處理控件Aspose.CAD教程:在 C# 中將 DXF 文件轉換為 SVG - AutoCAD C# 示例

概述 使用 C# 輕松將DXF文件轉換為SVG。此轉換可更好地兼容 Web 應用程序&#xff0c;并增強 CAD 圖紙的視覺呈現效果。使用Aspose.CAD for .NET &#xff0c;開發人員可以輕松實現此轉換過程。該 SDK 提供強大的功能&#xff0c;使其成為 C# 開發人員的可靠選擇。Aspose.CAD …

Gitee 持續集成與交付(CI/CD)篇

Gitee 持續集成與交付&#xff08;CI/CD&#xff09;篇 &#x1f680; 文章目錄 Gitee 持續集成與交付&#xff08;CI/CD&#xff09;篇 &#x1f680;&#x1f3af; 什么是 CI/CD&#xff1f;&#x1f31f; Gitee Go 介紹? 核心特性&#x1f3a8; 支持的技術棧 &#x1f680;…

深度學習:PyTorch卷積神經網絡圖像分類案例分享

本文目錄&#xff1a; 一、了解CIFAR-10數據集二、案例之導包三、案例之創建數據集四、案例之搭建神經網絡&#xff08;模型構建&#xff09;五、案例之編寫訓練函數&#xff08;訓練模型&#xff09;六、案例之編寫預測函數&#xff08;模型測試&#xff09; 前言&#xff1a;…

記錄多功能按鍵第二種寫法使用定時器周期間隔判斷.

邏輯是通過定時器溢出周期進行判斷按下次數 比如設置定時器溢出周期為500MS,每次溢出都會判斷按鍵按下次數,如果下個周期前沒有觸發按下,則結束鍵值判斷.并確定觸發鍵值.清空按下次數標志.測試比一個定時器周期按下按鍵次數判斷寫法要穩定... 記錄STM32實現多功能按鍵_stm32一…

【安卓Sensor框架-1】SensorService 的啟動流程

內核啟動后&#xff0c;首個用戶空間進程init&#xff08;pid1&#xff09;解析init.rc配置文件&#xff0c;啟動關鍵服務&#xff08;如Zygote和ServiceManager&#xff09;。 Zygote服務配置為/system/bin/app_process --zygote --start-system-server&#xff0c;后續用于孵…

centos網卡綁定參考

同事整理分享&#xff1a; 1. 加載 Bonding 模塊 modprobe bonding 獲取網卡名稱 ip a 找到接了網線的網卡名稱&#xff0c;記下。 3. 配置物理網卡 創建并編輯 /etc/sysconfig/network-scripts/ifcfg-ens36&#xff08;ifcfg-后面的內容根據上面找到的具體網卡名稱決定&#…

mbedtls ssl handshake error,res:-0x2700

用LinkSDK.c連接第三方云平臺出現現象 解決方案&#xff1a; 在_tls_network_establish函數中加入 mbedtls_ssl_conf_authmode(&adapter_handle->mbedtls.ssl_config, MBEDTLS_SSL_VERIFY_NONE);原因解釋&#xff1a;用連接方式是不用證書認證/跳過服務端認證。

Spring Security 的方法級權限控制是如何利用 AOP 的?

Spring Security 的方法級權限控制是 AOP 技術在實際應用中一個極其強大的應用典范。它允許我們以聲明式的方式保護業務方法&#xff0c;將安全規則與業務邏輯徹底解耦。 核心思想&#xff1a;權限檢查的“門衛” 你可以把 AOP 在方法級安全中的作用想象成一個盡職盡責的“門…

一鍵內網穿透,無需域名和服務器,自動https訪問

cloudflare能將內網web轉為外網可訪問的地址。&#xff08;這和apiSQL有點類似&#xff0c;apiSQ可以將內網數據庫輕松轉換為外網的API&#xff0c;并且還支持代理內網已有API&#xff0c;增強安全增加API Key&#xff0c;以https訪問等等&#xff09; 但Cloudfalre tunnel這個…

Sentinel(二):Sentinel流量控制

一、Sentinel 流控規則基本介紹 1、Snetinel 流控規則配置方式 Sentinel 支持可視化的流控規則配置&#xff0c;使用非常簡單&#xff1b;可以在監控服務下的“簇點鏈路” 或 “流控規則” 中 給指定的請求資源配置流控規則&#xff1b;一般推薦在 “簇點鏈路” 中配置流控規則…

支持PY普冉系列單片機調試工具PY32linK仿真器

PY32 Link是專為 ?PY32系列ARM-Cortex內核單片機?&#xff08;如PY32F002A/030/071/040/403等&#xff09;設計的仿真器&#xff0c;支持全系列芯片的?調試和仿真?功能。?開發環境兼容性?支持主流IDE&#xff1a;?Keil MDK? 和 ?IAR Embedded Workbench?&#xff0c;…

深入解析Python多服務器監控告警系統:從原理到生產部署

深入解析Python多服務器監控告警系統&#xff1a;從原理到生產部署 整體架構圖 核心設計思想 無代理監控&#xff1a;通過SSH直接獲取數據&#xff0c;無需在目標服務器安裝代理故障隔離&#xff1a;單臺服務器故障不影響整體監控多級檢測&#xff1a;網絡層→資源層→服務層層…

JUC:10.線程、monitor管程、鎖對象之間在synchronized加鎖的流程(未完)

一、monitor管程工作原理&#xff1a; 首先&#xff0c;synchronized是一個對象鎖&#xff0c;當線程運行到某個臨界區&#xff0c;這個臨界區使用synchronized對對象obj進行了上鎖&#xff0c;此時底層發生了什么&#xff1f; 1.當synchronized對obj上鎖后&#xff0c;synch…

Elasticsearch(ES)分頁

Elasticsearch&#xff08;簡稱 ES&#xff09;本身不適合傳統意義上的“深分頁”&#xff0c;但提供了多種分頁方式&#xff0c;每種適用不同場景。我們來詳細講解&#xff1a; 一、基本分頁&#xff08;from size&#xff09; 最常用的分頁方式&#xff0c;類似 SQL 的 LIM…

原生微信小程序:用 `setData` 正確修改數組中的對象項狀態(附實戰技巧)

&#x1f4cc; 背景介紹 在微信小程序開發中&#xff0c;我們經常需要修改數組中某個對象的某個字段&#xff0c;比如&#xff1a; 列表中的某一項展開/收起多選狀態切換數據列表中的臨時標記等 一個常見的場景是&#xff1a; lists: [{ show: true }, { show: true }, { s…

Oracle 臨時表空間相關操作

一、臨時表空間概述 臨時表空間&#xff08;Temporary Tablespace&#xff09;是Oracle數據庫中用于存儲臨時數據的特殊存儲區域&#xff0c;其數據在會話結束或事務提交后自動清除&#xff0c;重啟數據庫后徹底消失。主要用途包括&#xff1a; 存儲排序操作&#xff08;如OR…

從靜態到動態:Web渲染模式的演進和突破

渲染模式有好多種&#xff0c;了解下web的各種渲染模式&#xff0c;對技術選型有很大的參考作用。 一、靜態HTML時代 早期&#xff08;1990 - 1995年&#xff09;網頁開發完全依賴手工編寫HTML&#xff08;HyperText Markup Language&#xff09;和CSS&#xff08;層疊樣式表…