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

新接触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的方式回调返回数据

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