最近开始开发小程序,遇到许多小问题,直奔主题。jquery
wx.request()是微信封装的ajax请求方法,也是小程序中ajax惟一的一个方法,被放在了API文档的第一个位置,的确使用率是最高的。ajax
可是wx.request()并不是像jquery中的$.ajax()同样,它还须要开发者在具体状况中作一些调整。小程序
在直接发送POST请求时,请求成功,能够触发success回调,可是请求到的数据为空。这其中的问题出在https请求的header上。(上图为header未设置时的状况)微信
当把请求header的content-type设置为application/x-www-form-urlencoded后,数据就能正常请求到了。app
请求数据内容正确post
这种content-type为application/x-www-form-urlencoded时,数据会转换为query string形式:测试
这种跟在url后的形式,数据长度受限。url
默认状态下则是这种形式:设计
可见,修改header的确请求到了数据,可是这种方法彻底违背了header的理念,get请求才应该将数据挂在url后面,而post请求所发送的数据会有可能超出query string形式的长度限制。3d
网上有说content-type写成小写时post请求能够成功,可是本人测试无效。
感受这应该是一个设计缺陷,好在小程序都很简单,通常不会有须要传递特别多参数的请求。
若是有其余解决方法或者缘由分析欢迎指点。