本文隻針對伺服器網站沒有備案或隻需要做本地網絡接口請求
一、問題引入
在小程式
demo.wxml
中聲明
button
控件,并設定點選事件,如下:
<button bindtap='testSendRequest'>網絡測試</button>
在
demo.js
中,對上述
button
點選事件進行處理,發送本地網絡請求,如下:
testSendRequest:function(){
wx.request({
url: "http://localhost:8083/test/index",
success: function (response) {
console.log("success");
},
fail:function(){
console.log("fail");
},
complete: function () {
console.log("complete");
}
})
}
接下來,運作小程式,打開
調試器
,點選
button
按鈕,發現報錯如下:
VM199:1 http://localhost:8083 不在以下 request 合法域名清單中,請參考文檔:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html
VM199:1 request:fail url not in domain list
register.js? [sm]:53 fail
register.js? [sm]:56 complete
根據提示,該網絡請求并沒有走到
success
的回調,而是走到
fail
和
complete
回調。
二、問題原因
- 微信小程式要求必須配置域名,且伺服器域名需經過ICP備案。新備案域名需24小時後才可配置。域名格式隻支援英文大小寫字母、數字及“- ”,不支援IP位址。
- 如果本地測試,可以取消
安全域名及HTTPS證書校驗
三、解決方案
- 在
的微信web開發者工具
->設定
->項目設定
項目設定
中
勾選:
不校驗安全域名、TLS 版本以及 HTTPS 證書
如下圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9cmaOh3ZU5keBRVT3V1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxQTO1ATOzAjM5ATMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
此時,再次調用本地網絡請求,可以請求成功。
VM228:1 工具未校驗合法域名、web-view(業務域名)、TLS 版本以及 HTTPS 證書。
register.js? [sm]:50 success
register.js? [sm]:56 complete
- 針對線上的話,需要在微信小程式背景對域名進行配置
微信小程式網絡請求配置問題及本地網絡請求測試解決方案