关于异步的一个费解的问题

jun1819 2011-08-28 07:37:22
一个异步请求中回调再发起一个异步请求,第二个异步请求的回调函数不能执行,哪位高人解释一下
见代码,使用的jquery的ajax请求

function test(){
$.get("/a",function(data){
alert("a");//可以触发
$.get("/b",function(data){
alert("b");//不能触发
});
});
}
...全文
114 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
2399 2011-08-29
  • 打赏
  • 举报
回复
能返回json数据,那错误还真不知道在哪。换一种方式试下:用ff的debug功能看一下
function test(){
$.get("/a",function(data){
alert("a");//可以触发
alert(data);
again(data);
});
}

function again(data){
$.get("/b",function(data){
alert("b");//不能触发
});
}
jun1819 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 laidezhong 的回复:]

试试?
HTML code


function test() {
newajax("/a", function (data) {
alert("a"); //可以触发
setTimeout(function(){
newajax("/b", function (data) {
……
[/Quote]
试过了也不行
laidezhong 2011-08-29
  • 打赏
  • 举报
回复
试试?


function test() {
newajax("/a", function (data) {
alert("a"); //可以触发
setTimeout(function(){
newajax("/b", function (data) {
alert("b"); //可以触发
});
},0)
});
}
jun1819 2011-08-29
  • 打赏
  • 举报
回复
已经跟踪过程序不能运行到alert("b");没有任何错误提示。我不用jquery的ajax请求可以正常触发,代码如下:

function test() {
newajax("/a", function (data) {
alert("a"); //可以触发
newajax("/b", function (data) {
alert("b"); //可以触发
});
});
}
function newajax(url, callback) {
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
callback(xmlhttp.responseText);
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}

不知道为什么会这样,看样子得看看jquery的源码
9441 2011-08-29
  • 打赏
  • 举报
回复
用firebug跟踪一下
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jun1819 的回复:]

引用 1 楼 truelove12 的回复:

1、检查/b是否可以访问,例如有没有出现404或500以上的错误
2、如果排除1的可能,将库版本修改到jquery-1.6.2试试

已经确认过请求都能正常返回json数据,换到jquery-1.6.2也不行
[/Quote]

能返回json,那我不明白你的错误在什么地方》
jun1819 2011-08-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 truelove12 的回复:]

1、检查/b是否可以访问,例如有没有出现404或500以上的错误
2、如果排除1的可能,将库版本修改到jquery-1.6.2试试
[/Quote]
已经确认过请求都能正常返回json数据,换到jquery-1.6.2也不行
豆虫 2011-08-28
  • 打赏
  • 举报
回复
后台进去了没有
  • 打赏
  • 举报
回复
1、检查/b是否可以访问,例如有没有出现404或500以上的错误
2、如果排除1的可能,将库版本修改到jquery-1.6.2试试

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧