zoukankan      html  css  js  c++  java
  • 微信小程序开发(request请求后台获取不到data)

    1微信的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进行了二次封装,代码如下:

    /**
    ***对微信小程序的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)
    }

    有点鬼畜还是第一版目前还是能用的- -

  • 相关阅读:
    【原创】谈一个数学教育专业的IT职业生涯
    应用程序测试方法与技巧
    Windows和MacOS的比较——不断完善和补充,欢迎吐槽
    【原创】Windows上应用程序报错常用分析方法总结
    职场感悟,发现言语背后的故事
    职场感悟,乐业感恩
    javadoc
    包机制的创建
    运算符
    变量和常量
  • 原文地址:https://www.cnblogs.com/jcscript/p/6126561.html
Copyright © 2011-2022 走看看