微信的request的post请求后台获取不到data(当初这个问题纠结了好久好久),原因是post传递的data是json格式而不是key,value的格式,所以获取不到相应的data就是post请求应为表单模式的data,微信小程序提供的datajson格式完全获取不到。
解决方法:
1.改变header
header: {
'Content-Type': 'application/json;charset=UTF-8;'
},
'Content-Type': 'application/json;charset=UTF-8;'
},
2.query的格式传递post请求就可以了,不过这个有点。。你懂的,我用了这种方放对request进行了二次封装,代码如下:
- /**
- ***对微信小程序的request进行二次封装
- ***注:兼容java接口的form请求
- **/
- /**
- ***create by jianchep 2016/11/26
- **/
- var config = require('../config.js')
- module.exports = function (obj) {
- if (!obj.url) {
- console.warn('请输入url接口')
- return
- }
- let url = config.javaHost + obj.url + '?format=json'
- let data = obj.data || {}
- let formData = obj.formData || {}
- let formDataString = ''
- for(var key in formData){
- formDataString += '&' + key + '=' + formData[key]
- }
- // console.log('formDataString--->>', formDataString)
- if (formDataString) {
- url += formDataString
- }
- console.log(url, 1231231231)
- let requestList = {
- url: url,
- data: data,
- header: {
- 'Content-Type': 'application/json'
- },
- success: function(res){
- if (obj.success) {
- obj.success(res)
- } else {
- let str = '\"' + obj.url + '\"接口请求成功,请用success回调函数来得到返回值'
- console.warn(str)
- }
- },
- fail: function(res) {
- if (obj.fail) {
- obj.fail(res)
- } else {
- let str = '\"' + obj.url + '\"接口请失败功,请用fail回调函数来得到返回值'
- console.warn(str)
- }
- },
- complete: function (res) {
- if (obj.complete) {
- obj.complete(res)
- }
- }
- }
- if (obj.method) {
- requestList.method = obj.method.toUpperCase()
- }
- // console.log('api----->>', requestList)
- wx.request(requestList)
- }
有点鬼畜还是第一版目前还是能用的