软月互动-南京高端网页设计公司 软月互动-基于网络营销的完美网站建设服务商

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

  • 来源:
    php中文网
    栏目:
    小程序开发
  • 最近开发了一个微信小程序版的任务管理系统,在向Java后台发送接口时遇到了一些问题,在这里做一个简单的总结。

    1、官方接口

    官方给出的接口叫做wx.request,请求方式比较简单,下面是官网给出的请求实例。

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

    2、存在的问题

    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做一个简单的封装,这样我们再调用的时候就方便了许多,代码如下:

    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是无效的,只能发异步请求,所以如果想写一个函数来返回调用接口得到的数据就比较难实现。

    软月互动成立于2008年,先后在南京江北新区、山东济南成立办事处,总部位于南京市大行宫。软月是一家集网站建设、网页设计、软件开发、企业画册设计、企业宣传片制作和动漫动画设计制作于一体的企业信息化服务机构。欢迎广大新老用户来电洽谈咨询,我们将竭诚为您服务!热线:025-81559996
      最新文章
  • Robots协议中致命的小细节 却最容易被忽略
    Robots协议中致命的小细节 却最容易被忽略

    在我看来Robots协议就是网站运营者行使网站支配权的一种执行文件,也是网站运营者最基本的权利。它是搜索引擎蜘蛛爬取网站之前重要的第一道关口,所以Robots协...

  • 滴滴将继续下架顺风车业务:坚决整改,将有33项问题逐条落实
    滴滴将继续下架顺风车业务:坚决整改,将有33项问题逐条落实

    站长之家(ChinaZ.com) 11月28日 消息:今天,交通部通报了近期针对网约车顺风车的安全检查情况,通报指出滴滴公司仍存在 7 方面 33 项问题,要求...

  • ofo激进商业化:视频广告175万一天 公众号48万一条
    ofo激进商业化:视频广告175万一天 公众号48万一条

    新浪科技讯 11月28日上午消息,资金困境中的ofo仍未放弃在商业化方面的探索。新浪科技获得的一份ofo B2B事业部的对外报价显示,其视频广告“试听风暴”的刊...

  • 最新百度搜索网页标题规范 网站标题不再“标题党”
    最新百度搜索网页标题规范 网站标题不再“标题党”

    对搜索用户来说,标题是一个网页最直观的认知渠道和展现方式,也是吸引用户点击搜索结果进入落地页的关键因素。为了保障搜索用户对所需资源的有效获取,保证搜索结果的公平...

  • 宝宝树IPO发行价定为6.8港元 明日在港交所挂牌上市
    宝宝树IPO发行价定为6.8港元 明日在港交所挂牌上市

    【TechWeb】2018年11月26日消息,母婴在线社区宝宝树今早发布公告称,该公司IPO(首次公开募股)发行价定为6.8港元,明天在港交所挂牌上市。宝宝树公...

  • 阿里宣布组织架构调整:天猫升级为大天猫 形成三大板块
    阿里宣布组织架构调整:天猫升级为大天猫 形成三大板块

    【TechWeb】11月26日消息,阿里巴巴集团CEO张勇今天发出全员公开信,宣布阿里最新一次面向未来的组织升级:阿里云升级阿里云智能,加强技术、智能互联网的投...

  • 小鸣单车最新破产审核结果:欠债1920余万元
    小鸣单车最新破产审核结果:欠债1920余万元

    【TechWeb】11月26日消息,据小鸣单车破产工作信息官方微信号显示,小鸣单车破产工作计划仍在进行中,管理人已完成对三十名非用户普通债权人申报债权的初步审核...

  • 腾讯QQ安全功能升级 不再提供单独账号申诉入口
    腾讯QQ安全功能升级 不再提供单独账号申诉入口

    【TechWeb】2018年11月26日消息,日前,腾讯发布《帐号改密、找密、更换密保手机服务升级及申诉服务下线的公告》,公告称不再提供单独账号申诉入口。公告显...

    • 实验室

      LABORATORY

  • 织梦开发
  • 小程序开发
  • 工作时间:周一至周五 9:00-18:00
  • 创意部地址:南京市中山东路198号龙台国际大厦1717室
  • CopyRight © 2008-2019 All Rights Reserved. 南京软月科技有限公司 苏公网安备 32010402000332号 苏ICP备08110927号-6