欢迎光临,了解微信小程序开发,就上易用通!

小程序开发填坑《七》request请求后台获取不到data解决方法

发布:2018-01-25 12:04浏览: 来源:网络 作者:tianshu

微信的request的post请求后台获取不到data(当初这个问题纠结了好久好久),原因是post传递的data是json格式而不是key,value的格式,所以获取不到相应的data就是post请求应为表单模式的data,微信小程序提供的datajson格式完全获取不到。
 
解决方法:
1.改变header
header: {
'Content-Type': 'application/json;charset=UTF-8;'
},
2.query的格式传递post请求就可以了,不过这个有点。。你懂的,我用了这种方放对request进行了二次封装,代码如下:
  1. /**
  2. ***对微信小程序的request进行二次封装
  3. ***注:兼容java接口的form请求
  4. **/ 
  5. /**
  6. ***create by jianchep 2016/11/26
  7. **/ 
  8. var config = require('../config.js')
  9. module.exports = function (obj) {
  10.     if (!obj.url) {
  11.         console.warn('请输入url接口')
  12.         return
  13.     }
  14.     let url = config.javaHost + obj.url + '?format=json'
  15.     let data = obj.data || {}
  16.     let formData = obj.formData || {}
  17.     let formDataString = ''
  18.     for(var key in formData){
  19.         formDataString += '&' + key + '=' + formData[key]
  20.     }
  21.     // console.log('formDataString--->>', formDataString)
  22.     if (formDataString) {
  23.         url += formDataString
  24.     }
  25.     console.log(url, 1231231231)
  26.     let requestList = {
  27.         url: url,
  28.         data: data,
  29.         header: {
  30.             'Content-Type': 'application/json'
  31.         },
  32.         success: function(res){
  33.             if (obj.success) {
  34.                 obj.success(res)
  35.             } else {
  36.                 let str = '\"' + obj.url + '\"接口请求成功,请用success回调函数来得到返回值'
  37.                 console.warn(str)
  38.             }
  39.         },
  40.         fail: function(res) {
  41.             if (obj.fail) {
  42.                 obj.fail(res)
  43.             } else {
  44.                 let str = '\"' + obj.url + '\"接口请失败功,请用fail回调函数来得到返回值'
  45.                 console.warn(str)
  46.             }
  47.         },
  48.         complete: function (res) {
  49.             if (obj.complete) {
  50.                 obj.complete(res)
  51.             }
  52.         }
  53.     }
  54.     if (obj.method) {
  55.         requestList.method = obj.method.toUpperCase()
  56.     }
  57.     // console.log('api----->>', requestList)
  58.     wx.request(requestList)
  59. }
有点鬼畜还是第一版目前还是能用的




免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。