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)
    }

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

  • 相关阅读:
    [加密]公钥密码学和对称加密
    [加密]公钥/私钥/数字签名理解
    [加密]对称加密和非对称加密
    [进程]kill 9和15,以及pkill, killall
    [服务]Crontab和每隔10S执行一次
    sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
    前端利器躬行记(2)——Babel
    前端利器躬行记(1)——npm
    React躬行记(13)——React Router
    React躬行记(12)——Redux中间件
  • 原文地址:https://www.cnblogs.com/jcscript/p/6126561.html
Copyright © 2011-2022 走看看