微信小程序android拿不到数据,微信小程序的坑 (一) request 请求方法为POST,服务器端拿不到数据...

微信小程序的wx.request请求,method设为POST并向后台传递数据,但从后台返回的信息来看后台并没有获得传递的数据wx.request({

url: url, //仅为示例,并非真实的接口地址

data: params,

method: 'POST',

header: {

'content-type': 'application/json' // 默认值

},

success: function(res) {

options.onSuccess(res)

},

fail: function(res) {

options.onError(res)

}

})

用的CI框架,框架内部封装了获取$_GET和$_POST全局变量的方法,一开始怀疑是不是参数不符合标准,然后被内部过滤掉了。

本地测试:

GET请求ok,本地用ajax POST数据也能拿到,所以排除框架自身原因,百度了一下,其他博客里强调的都是同一件事,看小程序的文档。

小程序的wx.request是针对 ajax的一种封装,封装之后是有些特性变化的。data 数据说明:

最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:

对于 GET 方法的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)

对于 POST 方法且 header['content-type'] 为 application/json 的数据,会对数据进行 JSON 序列化

对于 POST 方法且 header['content-type'] 为 application/x-www-form-urlencoded 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)

也就是说POST请求,服务器端是拿不到字段的,只能直接取$_POST,然后JSON解析出具体数据。

POST + application/x-www-form-urlencoded 作为正常的表单提交数据,被改成了GET方法提交。。。

好吧,不服不行!

也提醒自己一点:

一定要看清楚文档,文档很重要

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值