ajax作用域 回调函数的返回值 异步传输时得不到值
2012-02-27 10:33
453 查看
很郁闷的问题如下:
这个时候,返回的testNumber的值依然是等于2。
后查到原因,是因为ajax默认是异步传输,也就是说,jsAlert()方法并没有等待 success:function(data) 回调函数执行完,就已经向下执行了。于是 testNumber的值永远只会等于其初始化的值,也就是2.
解决办法, 设置为同步传输。
//默认 async: true
//同步 async: false
设置为同步传输
function jsAlert() { var testNumber = 2; $.ajax({ type: "post", url: "JsonCode/GetResult.ashx", success: function(data) { testNumber = data; } }); return testNumber; }
这个时候,返回的testNumber的值依然是等于2。
后查到原因,是因为ajax默认是异步传输,也就是说,jsAlert()方法并没有等待 success:function(data) 回调函数执行完,就已经向下执行了。于是 testNumber的值永远只会等于其初始化的值,也就是2.
解决办法, 设置为同步传输。
//默认 async: true
//同步 async: false
function jsAlert() { var testNumber = 2; $.ajax({ type: "post", url: "JsonCode/GetResult.ashx", async: false, success: function(data) { testNumber = data; } }); return testNumber; }
设置为同步传输
相关文章推荐
- ajax 传值,Ajax: Asynchoronous Javascript and xml (异步的js和xml). 异步刷新,异步传递.替代表单提交数据,回调函数处理返回的数据
- 由Ajax对比同步传输和异步传输
- ajax异步 servlet返回json格式数据注意 “ ‘ 的区别
- 解决$.ajax的回调函数值和SpringMVC返回String时冲突的问题
- Ajax实现的异步传输与验证示例代码
- AJAX 异步传输的WEB模式
- 关于ajax请求返回json数据不进入回调函数的可能情况
- 也就是说在有异步回调函数的情况下,方法的返回值基本都是不能使用的。【也有特殊情况】
- Ajax篇章(三)—异步之回调函数
- AJAX 异步传输数据的问题
- ajax异步传输json格式的例子
- ajax的异步与同步以及向上层函数返回值的应用
- Ajax异步请求——接受服务器返回的五种响应+补充
- Ajax异步传输方式中的GET与POST
- 多次异步请求调用ajax,让返回值按特定顺序来返回
- Ajax异步加载将返回的map解析在页面显示
- Ajax简单的异步请求以及返回的值获取
- jquery的ajax异步请求接收返回json数据实例