刚开始接触小程序,写一个简单的应用,功能就是简单的用户名和密码登录,点击领券2个界面。服务采用unicloud的云函数,函数有2个:一个是验证登录并成功后返回用户id,失败返回错误信息;二个是提交领取。云函数接口已经全部调试并成功返回预定结果。提交方法全部用get。
在小程序实现提交领取时都是用wx.request组件,模拟器和发布真实小程序都正常,能成功提交并返回结果。但提交登录时,在模拟器正常,发布真实小程序没反应。代码如下:
提交登录,在模拟器成功,发布真实版本不行,请问该怎样解决?
submitClick:function(el1){
// pageData.loginName和pageData.password是用户输入的账号密码。
if(pageData.loginName.trim().length==0){
wx.showModal({
title:"登录失败",
content:"请输入手机号码。",
showCancel:false,
confirmText:"我知道了",
success(res){}
});
return;
}
if(pageData.password.trim().length==0){
wx.showModal({
title:"登录失败",
content:"请输入登录密码。",
showCancel:false,
confirmText:"我知道了",
success(res){}
});
return;
}
if(pageData.password.trim().length==0){
wx.showModal({
title:"登录失败",
content:"请输入登录密码。",
showCancel:false,
confirmText:"我知道了",
success(res){}
});
return;
}
// ps:如果不输入账号或密码,上面2个判断会响应,说明有进入到方法。
var _url="https://tcb-xxxxxxxxxxxxxxx.service.tcloudbase.com/checkin?";
_url+=("userName="+pageData.loginName.trim());
_url+=("&pwd="+pageData.password.trim());
// ps:在模拟器用console.log输出_url正常,复制并在浏览器打开也正常。
wx.request({
url:_url,
data:{},
method:"GET",
success: (res) => {
var _data=res.data;
pageData.password="";
if(_data.flag==0){
app.globalData.cloudToken=_data.data._id; //全局保存ID。
if(_data.data.needRep) wx.navigateTo({url:"/pages/RepPwd/RepPwd"});
else wx.navigateTo({url:"/pages/index/index"});
}
else{
wx.showModal({\
title:"登录失败",
content:_data.msg,
showCancel:false,
confirmText:"我知道了",
success(res){}
});
}
},
fail(msg) {
wx.showModal({
title:"登录失败",
content:msg,
showCancel:false,
confirmText:"我知道了",
success(res){ }
});
},
complete() {}
});
}
用体验版打开调试功能,再打开在线版,可以看到调试打印信息,看看报什么错?