白月
白月
  • 发布:2021-02-13 09:48
  • 更新:2021-02-13 11:46
  • 阅读:1892

新接触uniapp,做一个项目接口对接,准备封装一个request,但是调用的时候获取不到数据

分类:uni-app

不是太会vue,按照搜索到的资料进行代码书写,其中api.js代码如下:

import  apibase from '@/common/config.base.js';  
import w_md5 from '@/common/w_md5.js';  

let apirequest = {}  
apirequest.globalRequest = (url, method, data, headers) => {  
/*     权限判断 因为有的接口请求头可能需要添加的参数不一样,所以这里做了区分  
    1 == 不通过access_token校验的接口  
    2 == 文件下载接口列表  
    3 == 验证码登录 */  
    // console.log(data)  
    if(headers == '')  
    {  
        headers = {apiid:apibase.APIID};  
    }  
    if(data != '')  
    {  
        data['ts'] = Math.round(new Date() / 1000);  
        var arrdata=[];  
        for(var key in data){  
            // console.log(key)  
            arrdata.push(key)  
        }  
        arrdata = arrdata.sort()  
        // console.log(newData)  
        var newData={}  
        var signstring = '';  
        var sign = '';  
        for(var i in arrdata){  
            var itemKey = arrdata[i];  
            signstring += itemKey+'='+data[itemKey]+'&';  
            newData[itemKey] = data[itemKey];  
        }  
        signstring = signstring.substr(0,signstring.length - 1);  
        console.log(signstring)  
        signstring = w_md5.hex_md5_32(signstring);  
        signstring = signstring+apibase.APIKEY;  
        sign = w_md5.hex_md5_32(signstring);  

        newData['sign'] = sign;  

    }else{  
        newData = {};  
    }  
    // console.log(apibase.APIURL + url)  
    uni.request({  
        url: apibase.APIURL + url,  
        method:method,  
        data:newData,  
        header: headers,  
        success:function(res){  

            //var json = JSON.parse(res.data);  
            console.log(res);  

            if (res.data.code == '0' || res.data.code == 0 || res.data.code == '') {  
                console.log(res.data);  
                return res;  
            } else {  
                throw res.msg  
            }  
        },  
        fail:function(err){  
            return err;  
        }  
    })  
 }   

export default apirequest

在正常index.vue中import并请求页面请求

onLoad:function(){  
        var senddata = {};  
        senddata['zindex'] = '123';  
        senddata['uid'] = 10001;  
        senddata['img'] = 'aaa';  
        var result = {};  
        result => api.globalRequest('index/index','POST',senddata,'');  
        console.log(result)  

    },  

我用的这一的方式。
result => api.globalRequest('index/index','POST',senddata,'');
不过result始终是undefined。这里需要怎么调用呢

但是api.js这里我 log的数据却是正常的

2021-02-13 09:48 负责人:无 分享
已邀请:
51ZionLin

51ZionLin

1: 需要用回调的方式返回数据
2: result => api.globalRequest('index/index','POST',senddata,''),你原先是写php还是?js不这样写,一般是这样
result = api.globalRequest('index/index','POST',senddata,'')

考虑到这里是异步操作,所以你还是需要调整一边,用callback的方式回调返回数据

该问题目前已经被锁定, 无法添加新回复