一个方法中的ajax在success中renturn一个值,但是方法的返回值是undefind?
https://segmentfault.com/q/1010000003762379
A页面
console.log(handleData("search_list", "http://192.168.1.11/Sueach/index", data));//undefind
// if(handleData("search_list", "http://192.168.1.11/Sueach/index", data)=="none"){
// document.querySelector(".search-error").style.display="block";
// }
js页面
请输入代码function handleData(warp, url, par) {
par.mobile = mobile;
mui.ajax(url, {
data: par,
dataType: 'json',
type: 'get',
timeout: 10000,
success: function(data) {
console.log(data.status);//为0
if (data.status == 0) {
console.log(""执行了);//执行到这
return "none";
}
handleJson(data.data, warp, par.p);
},
error: function(xhr, type, errorThrown) {
console.log(type);
}
});
}
为什么console.log输出的为undefined呢?
3 个回答
1
handleData 没有返回值默认值是undefined 我一般这样写
function handleData(warp, url, par) {
var result="";
par.mobile = mobile;
mui.ajax(url, {
data: par,
dataType: 'json',
type: 'get',
async:false,//
timeout: 10000,
success: function(data) {
console.log(data.status);//为0
if (data.status == 0) {
console.log(""执行了);//执行到这
result= "none";
return;//这里会退出success函数
}else{//这样在status!=0时才执行,
handleJson(data.data, warp, par.p);
}
},
error: function(xhr, type, errorThrown) {
console.log(type);
}
});
return result;
}
1
1)mui.ajax是个异步调用方法啊,handleData方法返回时候, mui.ajax还没执行完呢
2)handleData方法没有返回值,就返回默认的undefined
1
楼上两位都是正解,你要用返回值需要用ajax同步模式,即二楼的代码中 async:false,默认为true是异步,设为false为同步
一个方法中的ajax在success中renturn一个值,但是方法的返回值是undefind?的更多相关文章
- JavaScript 在函数中使用Ajax获取的值作为函数的返回值
解决:JavaScript 在函数中使用Ajax获取的值作为函数的返回值,结果无法获取到返回值 原因:ajax默认使用异步方式,要将异步改为同步方式 案例:通过区域ID,获取该区域下所有的学校 var ...
- 两强相争,鹿死谁手 — JQuery中的Ajax与AngularJS中的$http
一.JQuery与AngularJS 首先,先简单的了解一下JQuery与AngularJS.从源头上来说,两者都属于原生JS所封装成的库,两种为平行关系. 二.Ajax请求与数据遍历打印 这里是Aj ...
- jQuery find() 搜索所有段落中的后代 C# find() 第一个匹配元素 Func 有返回值 Action是没有返回值 Predicate 只有一个参数且返回值为bool 表达式树Expression
所有p后代span Id为 TotalProject 的 select 标签 的后代 option标签 为选中的 text using System; using System.Collections ...
- 【C/C++】高亮C++中函数的重写——函数名相同?参数列表相同?返回值相同?
C++的重载给人留下了非常深刻的影响,原因是重载的条件很值得注意:函数名相同,参数列表不相同的两个函数构成重载函数,而无关乎二者的返回值. 但是C++中的函数重写又是另一码事.标准规定:只要函数名相同 ...
- 在js中,ajax放在for中,ajax获取得到的变量有误
先看代码 for(var i=0;i<tds.length;i++){ mui.ajax(url+'api/client/gifts/isSigned', {data :{ sqId:" ...
- asp.net利用Ajax和Jquery在前台向后台传参数并返回值
1----------前台 首先需要 Jquer的包 <script src="js/jquery-1.9.1.js" type="text/javascript& ...
- 关于ajax中return并不能作为方法的返回值
接下来关于ajax中的return值最后没有办法是方法的最终返回值问题 login(username,password) { console.log("进入方法"); $.ajax ...
- ajax使用中发现的问题与深入扩展(for循环中嵌套ajax)
在学习ajax的过程中,我曾经遇到过这样的一个问题,为了得到一个详情列表,我要先向服务器去请求得到索引表,简单描述就是ajax中的success中的for循环中再次嵌套了ajax,结果第二层succe ...
- 深入理解ajax系列第九篇——jQuery中的ajax
前面的话 jQuery提供了一些日常开发中需要的快捷操作,例如load.ajax.get和post等,使用jQuery开发ajax将变得极其简单.这样开发人员就可以将程序开发集中在业务和用户体验上,而 ...
随机推荐
- [转载]Android 编译环境 build/envsetup.sh分析
2013-12-23 11:28:40 转载自: http://blog.csdn.net/evilcode/article/details/7005757 请到转载地址阅读原文, 转载以备查询.
- ActiveX 技术疑点 一
1.编写基于MFC Activex 使用 静态库 .lib , MFC 的使用 在静态库中使用MFC . 生成ocx 文件 注册失败.提示: ***还是一个可执行文件,没有为这个文件类型注册的注册帮助 ...
- Java与.NET DES加密解密互转
上代码: Java代码: import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKe ...
- matlab:clear,close,clc
clear 删除工作空间中的项目,释放系统内存 语法: clear clear name clear name1 name2 name3... clear global name clear -reg ...
- C# 调用配置文件SQL语句 真2B!
/********************************************************************************* ** File Name : SQ ...
- Apache目录结构(一)
一.Apache 目录结构 bin: 该目录用于存放apache常用的命令,比如httpd cig-bin:该目录存放linux下的常用命令 .sh conf:存放配置文件httpd.conf,在ht ...
- (转)IOS之Info.plist文件简介
原文:IOS之Info.plist文件简介 http://www.apkbus.com/android-130240-1-1.html (出处: Android开发论坛 - 安卓开发论坛 - Andr ...
- Makefile总结和反序字符数组,整体右移数组,杨辉三角!
2015.1.23今天我值日 继续接着昨天Makefile的目标开始记录:第一种:有 .PHNOY声明,但是冒号后面没有依赖文件.PHNOY:clean clean://没有依赖文件 rm *.0 t ...
- Linux iptables重启后失效
解决办法如下: 输入完iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 后 执行iptables-s ...
- 【大胃王】2013暴食女王巅峰战(安吉拉x三宅x正司x木下)熟肉+高能
一边说着“不可以还没试就先放弃”,一边认真吃饭的女生真的让人抵抗不了啊. http://www.bilibili.com/video/av2395980/