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

官方接口

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

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

最新文章

  1. Oracle ORA-07445 evaopn2()+128错误问题
  2. 25个实用的jQuery技巧和解决方案
  3. Jquery Mobile 小结
  4. Java基础之泛型
  5. Sprint(第三天11.16)
  6. ExtJS入门教程06,grid分页的实现
  7. 【转】tomcat下部署 solr 5.3.1
  8. centos7 安装及配置
  9. linux内核SPI总线驱动分析(二)(转)
  10. C语言基础(不断更新)
  11. 强制杀oracle进程
  12. mobile web 手机开发
  13. webstom,zencoding,windows快捷键
  14. 1455:An Easy Problem
  15. SparseArray,SparseBooleanArray和SparseIntArray
  16. Oracle统一访问代理层方案
  17. javascript中的eval函数
  18. npm 使用 taobao 的镜像后,无法 login & publish
  19. 浏览器打开exe文件
  20. Mysql模糊查询Like传递参数的语句

热门文章

  1. Math类的round方法小解
  2. Core Data & MagicalRecord
  3. 字段为空sql语句,设置当前模式
  4. publish over ssh
  5. ssh The authenticity of host 192.168.0.xxx can't be established
  6. hdu1426 Sudoku Killer
  7. mysql HA-keepalived
  8. GoF 设计模式:浅浅印象
  9. STL笔记之【map之添加元素】
  10. ubuntu ssh重启