function test(dmCode, dmNum) {
//检查模型是否需要参数时, 需要传递的参数
var parajson = {
DataModelCode: dmCode,
DataModelNum: dmNum
};
//从临时存储中取出服务器地址和用户名
var globleServer = plus.storage.getItem("globleServer");
var globleUser = plus.storage.getItem("globleUser");
var linkurl = globleServer + '/api/DataModel/linkModelInformation';
var ret;
mui.ajax(linkurl, {
data: parajson,
dataType: 'json', //服务器返回json格式数据
type: 'post', //HTTP请求类型
timeout: 10000, //超时时间设置为10秒;
beforeSend: function() { //发送之前,可以打一下看看提交的参数(如果是变量)
//console.log('beforesend!' + JSON.stringify(parajson))
plus.nativeUI.showWaiting(); //关闭转圈
},
success: function(data) {
//console.log(JSON.stringify(data)) //成功,则打一下返回的数据
//登陆成功与否可以根据返回的data里自己组装的code、success、err=0之类的判断
//在这里关闭login页面,open登陆之后的index页面
ret = data.data.UseParamFlag;
console.log(ret); //执行到这里会先是 true/false,是正确的值
},
error: function(xhr, type, errorThrown) { //失败,打一下失败的类型,主要用于调试和用户体验
console.log('AJAX:|T:' + type + '|H:' + xhr.responseText);
if(type == 'timeout') {
mui.toast("请求超时:请检查网络")
} else {
mui.toast('请求失败:' + type + '\n err:' + errorThrown);
}
},
complete: function() {
//console.log('userLogin:关闭转圈')
plus.nativeUI.closeWaiting(); //关闭转圈
}
});
**console.log(ret); //执行到这里就是undefined,请问原因,应该如何处理**
return ret;
};
定义函数如上图,确无法返回Ajax获取的值,请教应该如何处理,多谢!
success: function(data) {
//console.log(JSON.stringify(data)) //成功,则打一下返回的数据
//登陆成功与否可以根据返回的data里自己组装的code、success、err=0之类的判断
//在这里关闭login页面,open登陆之后的index页面
ret = data.data.UseParamFlag;
console.log(ret); //执行到这里会先是 true/false,是正确的值
},
console.log(ret); //执行到这里就是undefined,请问原因,应该如何处理
return ret;
2 个回复
Trust - 少说废话
ajax默认是异步的,可以配置async:false修改为同步。
建议在success回调中获取数据后,再进行后续的处理,不是特别推荐使用同步请求。
netstone (作者)
多谢多谢