欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > lypeer:一名Android开发者的微信小程序填坑之路《下》

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:505

HTML5影视传媒文化公司类网

2020-05-12   浏览:502

lypeer:一名Android开发者的微信小程序填坑之路《下》

发布时间:2020-12-13  

上一篇是九月二十七日写的,而这一篇我动笔的时间是十月十日(特殊的日子),中间相隔十三天——当然是因为国庆节。说老实话,这十三天里面我都没有碰和小程序有关的东西——毕竟学习小程序的开发也只是起于兴趣,而 ...

 

 

 

上一篇是九月二十七日写的,而这一篇我动笔的时间是十月十日(特殊的日子),中间相隔十三天——当然是因为国庆节。说老实话,这十三天里面我都没有碰和小程序有关的东西——毕竟学习小程序的开发也只是起于兴趣,而平时的工作并不会涉及与其相关的东西——但是在这十三天里,我能明显的感受到小程序热正在逐渐的消退,或者说大家正在逐渐以一种较为平和的姿态接受它的存在,其实这是一件好事。期待公测的到来。

接下来我就直接进入正题了,另外,文末我想和大家分享一下我的国庆节。

PS:这篇文章是接着上一篇文章 一名Android开发者的微信小程序填坑之路《上》 写的,建议没看过上一篇文章的同学先看一下上一篇哈~

正文 6,后台接收 post 请求要表单?

首先问题是:我要向后台 post 一些数据,但是后台需要接收一个表单,我应该怎样获得一个表单或者将本地的数据转换成一个表单呢?

在写 wechat-weapp-gank 的提交干货模块的时候,我就遇到了这个问题。一开始我挺纳闷的,明明是把后台需要的数据都给传过去了,结果后台老是跟我说我的数据不对,后来我才发现是因为后台那边要求接收一个表单,而我传过去的是一个 json 数据。于是我就开始了漫长的探索之旅。(就为了这一个问题,从晚上十一点多一直搞到第二天凌晨四点多。。。如果不是有一个群里有个老司机帮忙说不定就死在这个问题上了)

首先我想的是能不能把现成的 json 数据直接转化为 form 表单?因为我已经完成了获取要输的信息然后把它变成了 json 数据的工作,如果能直接把 json 对象转化为 form 对象的话我需要对程序做的改动肯定是最小的。然而遗憾的是,似乎并没有可行的方案。(也有可能是因为我 js 功底太差吧,我确实是没有找到相应的方法,要生成一个 form 似乎是需要 document 的,而小程序中我们并不能够得到它)

此路不通,另觅他途。在查阅资料的过程中,我发现在 HTML 中似乎是有 这个标签的,然后我就兴冲冲的又去翻阅了一下小程序的官方文档,果不其然,小程序还是很良心的,有这方面的描述:

form

然后我就兴冲冲的去按照官方的介绍用 标签来提交数据,js 里的代码是这样的:

formSubmit: function (event) { wx.request({ url: Constant.BASE_URL + "/add2gank", method: "POST", //按照官方文档,event.detail.value应该就是

我满心欢喜的以为可以了,结果并不可以。。。后台还是跟我说获得的数据有问题,结果我 console.log() 了看 给我返回的数据,它竟然还是个 json。。。说好的 form 呢!感觉受到了欺骗。

濒临崩溃。幸好这时候一个老司机点醒了我:为啥那么纠结在本地数据是什么样子的?归根结底我们是要把数据传到后台去,那么只需要让数据在请求里面是 form 的格式不就 OK 了?所以 form 表单在请求里面是长什么样子的呢?

json数据: {name: "lypeer", gender: "男"} form数据: "name=lypeer & gender=男"

1

2

3

 

 

所以只要直接对数据进行操作,不用去管什么鬼 json 对象 form 对象什么的,那位老司机写了个方法,我无耻的直接拿来用了:

function json2Form(json) {var str = []; for(var p in json){ str.push(encodeURIComponent(p) + "=" + encodeURIComponent(json[p])); } return str.join("&"); }