微信小程序開發(request請求後臺獲取不到data)

1微信的request的post請求後臺獲取不到data(當初這個問題糾結了很久很久),緣由是post傳遞的data是json格式而不是key,value的格式,因此獲取不到相應的data就是post請求應爲表單模式的data,微信小程序提供的datajson格式徹底獲取不到。java

解決方法:json

1.改變header小程序

header: {
'Content-Type': 'application/json;charset=UTF-8;'
},微信小程序

2.query的格式傳遞post請求就能夠了,不過這個有點。。你懂的,我用了這種方放對request進行了二次封裝,代碼以下:api

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

有點鬼畜仍是初版目前仍是能用的- -微信

相關文章
相關標籤/搜索