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

    微信小程序 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
      最新文章
  • 周一早报:有赞公开宣布996工作制,鼓励员工离婚;百度将在春晚发9亿红包;字节跳动副总裁炮轰微信
    周一早报:有赞公开宣布996工作制,鼓励员工离婚;百度将在春晚发9亿红包;字节跳动副总裁炮轰微信

    字节跳动副总裁炮轰微信:滥用市场支配地位会损害用户权益字节跳动副总裁李亮昨天在今日头条发表言论表示:滥用市场支配地位(垄断)会损害用户权益,也会影响行业健康发展...

  • 奥北环保获京东、峰瑞资本数千万元融资,从垃圾分类源头切入旨在改变人们资源处置方式
    奥北环保获京东、峰瑞资本数千万元融资,从垃圾分类源头切入旨在改变人们资源处置方式

    编者按:本文为创业邦原创报道,作者田甜创业邦获悉,垃圾分类回收平台奥北环保已于近日完成数千万元天使轮融资,投资方为京东和峰瑞资本,本轮融资资金将用于业务拓展和团...

  • 微信再度更新!朋友圈上线「视频动态」新入口,但不是人人都有
    微信再度更新!朋友圈上线「视频动态」新入口,但不是人人都有

    【本文作者刘凌歌 冷思真,首发于公众号「知晓程序」(ID:zxcx0101)。】春节将至,微信的更新变得十分频繁,在 2018 年 12 月 21 日更新 7...

  • 微信打击今日头条等违规诱导违规 字节跳动:滥用垄断地位受伤的是用户
    微信打击今日头条等违规诱导违规 字节跳动:滥用垄断地位受伤的是用户

    作者|张超编辑|罗丽娟临近春节,各大平台“拉新留存”的活动相继推出。微信作为目前国内月活用户最多的社交软件,自然成为了这些活动竞争的主要阵地。近日,微信打击今日...

  • 南京网站建设:网站优化中的百度权重值是什么?
    南京网站建设:网站优化中的百度权重值是什么?

    南京软月网站制作公司:所有做网站优化的人都知道,让自己网站的权重值越高越好,权重越高,排名越好,也说明网站内容的质量好,更利于搜索推广。百度搜索依然占据着国内搜...

  • 南京网站制作:上线后的网站如何修改SEO关键词
    南京网站制作:上线后的网站如何修改SEO关键词

    由于位置建设前期规划不到位,或者网站上线后的重心调整,会产生网站上线后修改seo的情况,这种网站上线后在调整或者说修改的情况不是时有发生的,是一种常态,怎么修改...

  • 周五早报:快播王欣或将推出新产品“丸子视频”;微信回应出现重大bug;华为发布全球首款5G芯片
    周五早报:快播王欣或将推出新产品“丸子视频”;微信回应出现重大bug;华为发布全球首款5G芯片

    微信回应出现重大bug:故障持续约30分钟,已全部恢复昨日上午,微信出现重大bug ,部分功能出现短暂故障,微信用户登录、消息会话、公众号、小程序、外部链接、文...

  • 获千万人民币天使轮融资,果联科技以小程序为依托打造B2B水果集采平台
    获千万人民币天使轮融资,果联科技以小程序为依托打造B2B水果集采平台

    近日,水果集采平台“果联科技”宣布获得 1000 万元天使轮融资,投资方为天图资本,同时百果园成为战略支持方,百果园董事长余惠勇担任果联科技首席顾问。本轮融资将...

    • 实验室

      LABORATORY

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