软月互动-基于网络营销的完美网站建设服务商

    微信小程序 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
      最新文章
  • 微信“话题标签”:六度理论与二度理论的“兼容”悖论
    微信“话题标签”:六度理论与二度理论的“兼容”悖论

    编者按:本文为专栏作者师天浩授权创业邦发表,版权归原作者所有。微信正在进行一场旷日持久并小心翼翼的“自我革命”。特殊时期的长假最该休息,反最忙碌,走亲访友、结婚...

  • 拼多多董事长黄峥五周年庆内部讲话,激励全员开启“硬核奋斗模式”
    拼多多董事长黄峥五周年庆内部讲话,激励全员开启“硬核奋斗模式”

    10月8日下午,拼多多内部举行成立5周年庆祝活动。在活动上,拼多多董事长黄峥发表了内部讲话,拼多多CEO陈磊则向合作伙伴发布了一封公开信。“虽然经历了飞速发展,...

  • 南京网页设计时网站顶部的内容如何设计排版更好?
    南京网页设计时网站顶部的内容如何设计排版更好?

    无论作为设计师还是普通浏览者,大家观看一个网站时最先接触到的就是网页的头部区域,这部分内容为网站的其他各个方面设定了基调,在网页设计中起着非常关键的作用。尤其是...

  • 南京网站建设如何提升网站内页长尾关键词的排名?
    南京网站建设如何提升网站内页长尾关键词的排名?

    南京网站建设:熟悉SEO优化的都知道,网站70%以上的流量是来自于长尾词,并且长尾词带来的是更精准的客户。当一个网站核心关键词达到很好的排名时,带来的流量可能往...

  • 南京做网站有排名后如何维护不让优化排名下降?
    南京做网站有排名后如何维护不让优化排名下降?

    南京网站建设:网站制作建设好后,我们都需要做网站优化(SEO),而SEO优化的最终目的就是为了使网站获得一个好的排名并且取得稳定。但是方法和途径有很多,不起效果...

  • 南京网站建设SEO必做的工作有哪些?
    南京网站建设SEO必做的工作有哪些?

    南京网站建设公司:当我们网站制作完成部署上线之后,首先想的就是在百度或者其他搜索引擎能被搜索到,让更多目标客户可以看到你的网站,那么就要推广,而最简单、最实惠的...

  • 南京网站制作好后,选择付费推广?还是选择SEO?
    南京网站制作好后,选择付费推广?还是选择SEO?

    南京网站制作:搜索引擎的推广手段有两种,分别是:SEO和SEM。两者有什么区别?主要区别是:SEO(Search Engine Optimization)也就是...

  • 南京网站制作优化时搜索蜘蛛池是什么?
    南京网站制作优化时搜索蜘蛛池是什么?

    南京网站制作:网站做好后,很多客户都会咨询软月建站,我们都会让客户首先先把网站内容填充好,新站上线的首要任务就是先保持一段时间,有规律的更新网站内容,好让搜索引...

    • 实验室

      LABORATORY

  • 织梦开发
  • 小程序开发
  • 工作时间:周一至周五 9:00-18:00
  • 创意部地址:南京市江北新区弘阳时代中心二期7幢2006室
  • CopyRight © 2008-2020 All Rights Reserved. 南京软月科技有限公司 苏公网安备 32010402000332号 苏ICP备08110927号-6