首頁  >  文章  >  web前端  >  在微信小程式中如何使用request網路進行請求操作

在微信小程式中如何使用request網路進行請求操作

亚连
亚连原創
2018-06-20 15:47:442950瀏覽

這篇文章主要介紹了微信小程式使用request網路請求操作,結合實例形式分析了wx.request(object)網路請求操作的具體使用技巧,需要的朋友可以參考下

本文實例講述了微信小程式使用request網路請求操作。分享給大家供大家參考,具體如下:

小程式提供了很多api,極大的方便了開發者,其中網絡請求api是wx.request(object),這是小程式與開發者的伺服器實現資料互動的一個很重要的api。

官方參數說明如下

OBJECT參數說明:

開發者伺服器介面位址#請求的參數設定請求的header , header 中不能設定Referer#預設為GET,有效值:OPTIONS, GET, HEAD, POST, PUT , DELETE, TRACE, CONNECT#否收到開發者服務成功回傳的回呼函數,res = {data: '開發者伺服器傳回的內容'}failFunction#否介面呼叫失敗的回調函數complete
#參數名稱 類型 必填 說明
url String
data Object、String
header
method #String
#success Function

#Function

介面呼叫結束的回呼函數(呼叫成功、失敗都會執行)

#最簡單的用法如下(以POST請求為範例)

bindSearchChange:function(e){
 var keyword = e.detail.value;
 wx.request({
 url:'xxxxxxxxx',
 data:{},
 header: {'Content-Type': 'application/json'},
 success: function(res) {
 console.log(res)
 }
 })
}

下面我們把請求寫在service檔案下的http.js檔案中,程式碼如下

var rootDocment = 'hxxxxx';//你的域名
function req(url,data,cb){
 wx.request({
 url: rootDocment + url,
 data: data,
 method: 'post',
 header: {'Content-Type': 'application/json'},
 success: function(res){
 return typeof cb == "function" && cb(res.data)
 },
 fail: function(){
 return typeof cb == "function" && cb(false)
 }
 })
}
module.exports = {
 req: req
}
其中

module.exports

是將req方法暴露出去使得別的檔案中可以使用該方法,由於js函數是非同步執行的,所以return 的是回調函數,而不是特定的資料為了其他檔案方便呼叫此方法,我們在根目錄的app .js檔案中將其註冊成為全域函數,如下

//app.js
var http = require('service/http.js')
App({
 onLaunch: function () {
 //调用API从本地缓存中获取数据
 var logs = wx.getStorageSync('logs') || []
 logs.unshift(Date.now())
 wx.setStorageSync('logs', logs)
 },
 getUserInfo:function(cb){
 var that = this
 if(this.globalData.userInfo){
 typeof cb == "function" && cb(this.globalData.userInfo)
 }else{
 //调用登录接口
 wx.login({
 success: function () {
  wx.getUserInfo({
  success: function (res) {
  that.globalData.userInfo = res.userInfo
  typeof cb == "function" && cb(that.globalData.userInfo)
  }
  })
 }
 })
 }
 },
 globalData:{
 userInfo:null
 },
 func:{
 req:http.req
 }
})

這時這個req就是全域的了,在呼叫時我們可以使用getApp.func.req()來調用,具體如下

var app = getApp()
Page({
 data: {
 },
 onLoad: function (opt) {
 //console.log(opt.name)
 app.func.req('/api/get_data',{},function(res){
 console.log(res)
 });
 }
})
###上面是我整理給大家的,希望今後會對大家有幫助。 ######相關文章:#########在js中如何判斷假日#############在Angular中如何實作查詢天氣預報###### ######在Angular中如何實作顯示輸入內容######

以上是在微信小程式中如何使用request網路進行請求操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn