新聞中心
這篇文章主要介紹了微信小程序中wx.request的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)是一家專業(yè)提供共青城企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、HTML5、小程序制作等業(yè)務(wù)。10年已為共青城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
微信小程序 wx.request----接口調(diào)用方式
最近開發(fā)了一個微信小程序版的任務(wù)管理系統(tǒng),在向Java后臺發(fā)送接口時遇到了一些問題,在這里做一個簡單的總結(jié)。
官方接口
官方給出的接口叫做wx.request,請求方式比較簡單,下面是官網(wǎng)給出的請求實例。
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默認(rèn)為application/json,如果我們想換種方式比如用"application/x-www-form-urlencoded"會發(fā)現(xiàn)在請求頭信息中并沒有取代默認(rèn)的application/json而是新增了這種方式,另外在用jquery.ajax請求時即便同樣使用application/json方式來請求,得到的數(shù)據(jù)格式也不相同,無論用什么請求方式ajax都會將請求數(shù)據(jù)轉(zhuǎn)換為&name1=value1&name2=value2的形式,這樣在根據(jù)content-type來解析請求數(shù)據(jù)時就會出現(xiàn)問題,不知道微信是有意這樣做還是它根本就是個bug。總之是給我?guī)砹瞬槐匾穆闊?/p>
微信小程序發(fā)送的是https請求,在本地調(diào)試時可以用http,如果放在手機(jī)上測試時校驗請求方式和域名,不合法會報以下錯誤:
為了方便請求,可以對wx.request做一個簡單的封裝,這樣我們再調(diào)用的時候就方便了許多,代碼如下:
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;
如果一個接口在不同地方頻繁用到,原本設(shè)想寫一個函數(shù),然后將函數(shù)暴露供其他js調(diào)用,但后來發(fā)現(xiàn)wx.request中設(shè)置async是無效的,只能發(fā)異步請求,所以如果想寫一個函數(shù)來返回調(diào)用接口得到的數(shù)據(jù)就比較難實現(xiàn)。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“微信小程序中wx.request的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
分享標(biāo)題:微信小程序中wx.request的示例分析
文章地址:http://www.dlmjj.cn/article/pdghhj.html