/*常见错误示例  直接在 ajax 里面return 结果
*/ function demo(){
$.ajax({
url : 'test.do',
type : "post",
data : {},
async : false,
success : function(data) {
return 2;
}
});
} /* 结果 无返回 */

两个错误写法会导致这种情况:

1.ajax默认为异步,异步不可以直接return返回结果

2.在ajax方法中直接return返回值,嵌套函数中,return该作用域函数的返回值,demo中,demo()为外部函数,return的结果对demo()无效

修改为:

41 /**
42 * (1)同步调用 (2)且在ajax对全局变量进行设值 (3)ajax函数外将变量return
43 * 结果:返回 2。成功获取返回值
44 * 成功原因:先执行result = 2;再往下执行return result;
45 */
46 function demo1(){
47 var result = 1;
48 $.ajax({
49 url : 'test.do',
50 type : "post",
51 data : {},
52 async : false,
53 success : function(data) {
54 result = 2;
55 }
56 });
57 return result; //
58 }

可以正常运行了。但是,ajax 改为同步请求会导致阻塞;ajax 需要 进行异步请求 

 /**
* 添加async:true.即修改为异步
* 结果以callback的形式回调
*/
function demo1(params,callback){
var result = 1;
$.ajax({
url : 'test.do',
type : "post",
data : {"params ":params },
async : true,
success : function(data) {
result = 2;
callback(result);
}
});
} demo1("Value",function(rs){
//do someting
})

随机推荐

  1. BA-siemens-TX-IO模块照片

    西门子楼宇自控用到的P1模块是这样的 TX-16D模块是这样的 TX-8X模块是这样的: TX-6R模块是这样的: TX-IO总线连接模块( 此模块供电和通讯加起来共需三芯线):

  2. oracle 解除锁表sql

    select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b ...

  3. css3 transform 旋转div

    css3 transform 旋转div 学习了:http://www.w3school.com.cn/cssref/pr_transform.asp

  4. 技术总结--android篇(一)--MVC模式

    先介绍下MVC模式:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显 ...

  5. sklearn中的数据预处理----good!! 标准化 归一化 在何时使用

    RESCALING attribute data to values to scale the range in [0, 1] or [−1, 1] is useful for the optimiz ...

  6. tabBar的图标不被系统渲染

    navi.tabBarItem.selectedImage = [[UIImage imageNamed:imageStr]imageWithRenderingMode:UIImageRenderin ...

  7. Spring学习笔记(一) 简介

    版权声明 本文是摘自IBM上Naveen Balani的一篇文章,原文请点击此处:http://www.ibm.com/developerworks/cn/java/wa-spring1/ Sprin ...

  8. 三种启动SQLSERVER服务的方法(启动sqlserver服务器,先要启动sqlserver服务)

    1.后台启动 计算机-管理-服务和应用程序 2.SQL SERVER配置管理器 3.在运行窗口中使用命令进行启动:

  9. 迭代器与函数Python学习(四)

    1.1 迭代器: 迭代的工具 1.1.1 什么是迭代: 指的是一个重复的过程,每一次重复称为一次迭代,并且每一次重复的结果是下一次重复的初始值 while True: print('=====> ...

  10. 错误:com.android.builder.packaging.DuplicateFileException: Duplicate files copied

    File2: C:\Users\guoxw\.gradle\caches\modules-2\files-2.1\org.jsoup\jsoup\1.10.3\b842f960942503cf1abb ...