在小程序中,使用 wx.request( ) 這個方法來發送網路請求,整個請求的方式和 jQuery 里面的 $.ajax 方法是非常相似的。
在 wx.request( ) 這個方法中,接收一個配置對象,該配置對象中能夠配置的項目如下表:
關于服務器接口
有關服務器接口的配置,需要滿足以下兩點:
- 要求必須要是 https 接口
- https 接口對應的域名還必須要在小程序管理平臺進行配置
【開發】-【開發管理】-【開發設置】下面有一個【服務器域名】,在這個位置進行配置
我如果是開發環境怎么辦?
在開發環境下,因為開發階段的服務器接口還沒部署到現網的域名下,所以我們可以選擇不校驗 HTTPS 證書,具體的方式如下圖所示:
向服務器傳遞參數
一般來講,用得比較多的有 GET 和 POST 請求
- GET
- 可以放在 URL 后面(URL 長度有限制,并且還會做一次 URL 的 encode)
- 也可以放在 data 配置項目里面
- POST
- 只能放在 data 里面
綜上所述,建議就把數據放在 data 里面
收到回包
只要收到了服務器返回的信息,都會進入到 success 的回調函數,然后我們再在 success 回調函數中根據服務器返回的內容來做下一步操作。
接下來,我們來看一個具體例子
到時候大家會拿到一個名為 server 的服務器代碼,大家拿到后,首先使用 npm i 安裝依賴包,安裝完成后,使用 npm start 啟動這個服務器即可。該服務器默認監聽 3000 端口,該服務器提供兩個接口:
- / :這是 GET 請求,服務器端會返回 {name : “zhangsan”, age : 18}
- /abc:這是一個 POST 請求,服務器端會返回 {name : “lisi”, age : 20}
當你安裝了依賴包,使用 npm start 啟動服務器后,看到下面的畫面說明服務器已經啟動成功
接下來在小程序端通過 wx.request 進行請求的發送,代碼片段如下:
// 向服務器發送 Get 請求
sendGet(){wx.request({url: 'http://localhost:3000',data : {loginId : this.data.loginId,password : this.data.password},success(e){console.log(e);}})
},// 向服務器發送 Post 請求sendPost(){wx.request({url: 'http://localhost:3000/abc',method : "POST",data : {loginId : this.data.loginId,password : this.data.password},success(e){console.log(e);}})},
使用技巧
一般來講,在發送請求的時候,有三點可以優化:
- 和服務器通信的過程中,需要顯示一個 loading 框
- wx.showLoading( ):顯示 loading 框
- wx.hideLoading( ):隱藏 loading 框
- 設置超時時間
- 在 app.json 中設置 networkTimeout
- 如果處理失敗,需要顯示一個提示
- wx.showToast( )
本節課結束之后,請通讀官方文檔對應的:https://developers.weixin.qq.com/ebook?action=get_post_info&docid=000ee27c9c8d98ab0086788fa5b00a#_ftn3