微信小程序:POST请求data数据请求不到

  最近开始开发小程序,遇到许多小问题,直奔主题。

  

  wx.request()是微信封装的ajax请求方法,也是小程序中ajax唯一的一个方法,被放在了API文档的第一个位置,的确使用率是最高的。

  但是wx.request()并非像jquery中的$.ajax()一样,它还需要开发者在具体情况中做一些调整。

  在直接发送POST请求时,请求成功,可以触发success回调,但是请求到的数据为空。这其中的问题出在https请求的header上。(上图为header未设置时的情况)

  

  当把请求header的content-type设置为application/x-www-form-urlencoded后,数据就能正常请求到了。

请求数据内容正确

  这种content-type为application/x-www-form-urlencoded时,数据会转换为query string形式:

这种跟在url后的形式,数据长度受限。

  默认状态下则是这种形式:

  可见,修改header的确请求到了数据,但是这种方法完全违背了header的理念,get请求才应该将数据挂在url后面,而post请求所发送的数据会有可能超出query string形式的长度限制。

  网上有说content-type写成小写时post请求可以成功,但是本人测试无效。

  感觉这应该是一个设计缺陷,好在小程序都很简单,一般不会有需要传递特别多参数的请求。

  如果有其他解决方法或者原因分析欢迎指点。

时间: 2024-11-05 12:09:45

微信小程序:POST请求data数据请求不到的相关文章

微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找?

原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=359 本文由本站halfyawn原创:感谢原创者:如有疑问,请在评论内回复 还是先把问题列出来,让问题来驱动探索: 微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找? 首先分析了一下源码,日志目录应该同NW.JS的应用目录相关,,,查查查,,一直查到NW.JS的C++源码,搞得太复杂,大概知道位置,但还是不确切.决定不往这条线找,换另一条路: 把日志文件修改输出到我指定目录

微信小程序正确的异步request请求,根据经纬度获取地理位置信息

微信小程序的所有request请求都是异步的,不支持同步.但是在请求时可能会耗费一定时间,这样的话在获取返回数据时可能方法还没有执行完就已经进行赋值操作了.我遇到的就是拿到的数据为undefined. 解决办法,使用回调函数,等操作完成后再更改原来的值. 贴代码:(这是根据经纬度获取地理位置的一个方法) function GetAddress(latitude, longtitude, callback, errorCallback) { var geturl = 'https://api.ma

微信小程序使用promise封装异步请求

一:开发了一段时间的微信小程序,发现里面的API都是这样的: wx.showModal({ title: '提示', content: '这是一个模态弹窗', success: function(res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } }) 如果代码多了逻辑多了,就会出现所谓的回调地狱. wx.showModal({ title: '提示'

微信小程序前台的用户数据入库(后台Laravel)

首先 我们可以看到微信小程序官方 文档 wx.login api-login.jpg 通过此图 我们知道 前台要传 一个 code给后台,后台拿到code 并结合appid和appsecret请求微信接口服务,拿到openid和session_key 查阅文档 我们可以清楚知道 后台要获得用户数据 就需要前台除了传code 还需要传 iv和 encryptedData iv和encryptedData 后台拿到这两个 并结合拿code去请求得到的session_key便可以解密获得用户数据 包括

微信小程序 WXS实现json数据需要做过滤转义(filter)

前言 最近有在做小程序开发,在开发的过程中碰到一点小问题,描述一下先. 本人在职的公司对于后台获取的 json 数据需要做过滤转义的很多,不同的状态码会对应不同的文字,但是在微信小程序中又没有类似 vue 中的 | 方法进行快速的过滤,大都是用数据遍历洗数据来实现的,说实话,很麻烦,即使提取了公共方法那也麻烦,总之要洗数据就麻烦 WXS 为何物 在上代码之前先简单的介绍一下 WXS 是什么,以及和 javascript 有什么区别,虽然官方文档中都有,但我认为博客的存在意义就是尽量减少看官们的页

微信小程序——动态修改页面数据及参数传递

动态修改页面数据 在小程序中我们经常要动态渲染数据,对于新手而言我们常常遇到修改的数据在控制台显示和页面显示不一致,因为我们用“=”修改数据的,这种是可以修改,但无法改变页面的状态的,还会造成数据不一致,代码如下: data: { array: [{ text: '数组' }] } onLoad:function(){ this.data.array[0].text=1; console.log(this.data.array[0].text); } 修改代码: onLoad:function(

微信小程序 watch监听数据变化 类似vue中的watch

1.参考 https://github.com/donghaohao/vuefy 2.项目使用 列表循环  图片上传对应每个学生 需要监听学生的变化  上传对应的图片 原文地址:https://www.cnblogs.com/zhengao/p/10734826.html

微信小程序:wx.request之post请求后端无法获取数据的问题

前言:小程序的开发中总是踩到各种坑,看文档也不知所云: 例如当我们在写微信小程序接口时,method请求方式有POST和GET两种,为了数据安全,我们会偏向于使用POST请求方式访问服务器端: 问题:当我们使用POST方式请求时,后端无法获取数据,但使用GET方式便可以获取数据?? 解决办法: 设置请求的 header: header: { "Content-Type": "application/x-www-form-urlencoded" }, 例如:

微信小程序 网络请求之re.request 和那些坑

微信小程序有四种网络请求类型,下面只详细介绍普通HTTPS请求(wx.request) 普通HTTPS请求(wx.request) 上传文件(wx.uploadFile) 下载文件(wx.downloadFile) WebSocket通信(wx.connectSocket) 首先,先确认是否设置了合法域名,或者在开发环境下不校验合法域名.关于设置合法域名请看→微信小程序 网络请求之设置合法域名   以下是wx.request的详细说明,截图于微信小程序开发文档 在微信index.js 发起一个普