首頁 微信小程式 小程式開發 微信小程式 wx.request(介面呼叫方式)詳解及實例

微信小程式 wx.request(介面呼叫方式)詳解及實例

Jan 09, 2017 am 10:50 AM

微信小程式 wx.request----介面呼叫方式

    最近開發了一個微信小程式版的任務管理系統,在傳送介面給Java後台時遇到了一些問題,在這裡做一個簡單的總結。

官方介面

官方給的介面叫做wx.request,請求方式比較簡單,下面是官網給的請求實例。

wx.request({
 url: 'test.php', //仅为示例,并非真实的接口地址
 data: {
   x: '' ,
   y: ''
 },
 header: {
   'content-type': 'application/json'
 },
 success: function(res) {
  console.log(res.data)
 }
})
登入後複製

存在的問題

wx.request請求的header中content-type預設為application/json,如果我們想換種方式例如用"application/x-www-form-urlencoded"會發現在請求頭資訊中並沒有取代預設的application/json而是新增了這種方式,另外在用jquery.ajax請求時即便同樣使用application/json方式來請求,得到的資料格式也不相同,無論用什麼請求方式ajax都會將請求資料轉換為&name1=value1&name2 =value2的形式,這樣在根據content-type來解析請求資料時就會出現問題,不知道微信是有意這樣做還是它根本就是個bug。總之是給我帶來了不必要的麻煩。

微信小程式發送的是https請求,在本地調試時可以用http,如果放在手機上測試時校驗請求方式和域名,不合法會報以下錯誤:

微信小程序 wx.request(接口调用方式)详解及实例

為了方便請求,可以對wx.request做一個簡單的封裝,這樣我們再呼叫的時候就方便了許多,程式碼如下:

var app = getApp();
function request(url,postData,doSuccess,doFail,doComplete){
   var host = getApp().conf.host;
   wx.request({
    url: host+url,
    data:postData,
    method: 'POST', 
    success: function(res){
     if(typeof doSuccess == "function"){
       doSuccess(res);
     }
    },
    fail: function() {
     if(typeof doFail == "function"){
       doFail();
     }
    },
    complete: function() {
     if(typeof doComplete == "function"){
       doComplete();
     }
    }
   });
 }
}
 
module.exports.request = request;
登入後複製

如果一個介面在不同地方頻繁用到,原本設想寫一個函數,然後將函數暴露供其他js調用,但後來發現wx.request中設定async是無效的,只能發異步請求,所以如果想寫一個函數來返回呼叫介面得到的資料就比較難實現。

感謝閱讀,希望能幫助大家,謝謝大家對本站的支持!

更多微信小程式 wx.request(介面呼叫方式)詳解及實例相關文章請關注PHP中文網!


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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)