小程序本地測試:開發者工具能請求後臺數據,手機預覽卻不行

在微信小程序本地開發測試過程中(這裡指的是本地測試

本地測試本地測試,重要的事說三遍),會遇到一個坑:在微信開發者工具中能正常請求本地後臺數據,但在手機預覽中卻請求不到,如下圖所示:

小程序本地測試:開發者工具能請求後臺數據,手機預覽卻不行

image

在手機預覽中無數據

小程序本地測試:開發者工具能請求後臺數據,手機預覽卻不行

image

解決此問題需要有以下4點設置:

1、在微信開發者工具中設置:不校驗合法域名、web-view(業務域名)、TLS 版本以及 HTTPS 證書

image

2、wx.request請求的地址不得使用localhost,而應改成本地服務器所在的電腦IP

假設電腦的IP為192.168.0.110;要請求的地址為:index/list/getdata;代碼書寫如下:

<code>wx.request({
//url: 'http://localhost/index/list/getdata',錯誤請求地址
url: 'http://192.168.0.110/index/list/getdata',//正確請求地址
data: {},
header: {
'content-type': 'application/json'
},
success (res) {
console.log(res.data)
}
})/<code>


3、手機和電腦(本地服務器)需要連接同一局域網(WIFI網絡)

4、手機掃碼進入小程序後,需要打開調試模式才能請求到數據

進入小程序後,此時頁面的數據依舊是空的;點擊右上角三個點,打開調試

image

打開調試後會自動關閉當前小程序,需要重新進入,調試模式才生效

重新進入小程序,可以看到頁面數據已經出來了,並且右下角有個綠色方形的調試工具按鈕

image

點擊右下角的調試工具按鈕,可以看到頁面的所有數據,方便開發者在手機端更好的測試

image

總結

1. 本地測試時,微信開發者工具務必勾選(不校驗合法域名)此設置,否則微信開發者工具請求不到數據;待上線時,再取消此設置。有關為何要設置(不校驗合法域名)的文檔地址如下:


2. 在使用wx.request請求地址,如果url是localhost格式的話,雖然在微信開發者工具中是可以請求到後臺數據,但是手機預覽時,數據無法請求。因為localhost是指本地服務器所在的那臺電腦,手機訪問localhost並不知道localhost是什麼,所以需要使用本機的IP+請求地址

3. 疑問:為何手機開啟了調試模式就可以請求到數據,未開啟卻請求不到?這其實跟前面微信開發者工具設置不校驗合法域名的道理是一樣的

想學習編程又沒有學習資料的話,可以關注我的頭條號並在後臺私信我:前端,即可免費獲取。


分享到:


相關文章: