您当前的位置: 首页 > 知识百科 > 微信小程序后端接口的相关问题及解决方法

微信小程序后端接口的相关问题及解决方法

时间:2023-07-01 14:05 阅读数:14 人阅读 分类:知识百科

  小编发现很多小程序开发者在初期都会遇到很多技术方面的问题,其中就包括了微信小程序后端接口的调用问题,所以今天会专门为大家解答一下如何解决这些问题,一起来看看吧。

  下面是官网给出的微信小程序后端接口调用实例:

  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--form-urlencoded"会发现在请求头信息中并没有取代默认的application/json而是新增了这种方式,另外在用jquery.ajax请求时即便同样使用application/json方式来请求,得到的数据格式也不相同,无论用什么请求方式ajax都会将请求数据转换为&name1=value1&name2=value2的形式,这样在根据content-type来解析请求数据时就会出现问题,不知道微信是有意这样做还是它根本就是个bug。总之是给我带来了不必要的麻烦。

  微信小程序发送的是s请求,在本地调试时可以用,如果放在手机上测试时校验请求方式和域名,不合法会报以下错误:

  为了方便请求,可以对wx.request做一个简单的小程序api封装,这样我们再调用的时候就方便了许多

  微信小程序后端接口调用代码如下:

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

  关于微信小程序后端接口的相关介绍,大家可以在微信小程序商店搜索相关资料来看一看,如果调用后端接口时遇到了上文中的问题,相信大家下一次对照上述步骤就可以解决了。

  

  小程序的后端开发资料详解

  微信小程序后端JAVA的使用代码详解

  微信小程序后端数据库,微信小程序和野狗数据库结合