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

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

  • 相关阅读:
    我想操作的是利用SqlDataAdapter的几个Command属性(InsertCommand,UpdateCommand,DeleteCommand)来更新数据库
    有两个数据库A和B,数据库A中有表a,如何把表a映射到数据库B中,sql 2005
    代码生成器
    IWorkSpace接口介绍
    空间数据库介绍
    IGeoFeatureLayer
    IFeatureLayer
    Python ML环境搭建与学习资料推荐
    Python ML环境搭建与学习资料推荐
    TypeError: Can not convert a float32 into a Tensor or Operation.
  • 原文地址:https://www.cnblogs.com/jcscript/p/6126561.html
Copyright © 2011-2022 走看看