ajax同步方式提交请求,beforeSend不起作用,即IE假死 代码如下:
代码如下:functionPopup(url){varreturnurl="";$.ajax({type:"GET",url:"checklogin.php",data:...
代码如下:
function Popup(url){
var returnurl="";
$.ajax({
type: "GET",
url: "checklogin.php",
data: "sessionid=" +$("#sessionid").val()+"&localip="+$("#localip").val(),
async:false,
beforeSend :function(){
$(window.parent.document).find("#popDiv").css("display","block");
$(window.parent.document).find("#bg").css("display","block");
},
success: function(msg) //更新成功
{
$(window.parent.document).find("#popDiv").css("display","none");
$(window.parent.document).find("#bg").css("display","none");
if(msg==1){
returnurl= url;
}else{
returnurl= "www.baidu.com";
}
}
});
return returnurl;
} 展开
function Popup(url){
var returnurl="";
$.ajax({
type: "GET",
url: "checklogin.php",
data: "sessionid=" +$("#sessionid").val()+"&localip="+$("#localip").val(),
async:false,
beforeSend :function(){
$(window.parent.document).find("#popDiv").css("display","block");
$(window.parent.document).find("#bg").css("display","block");
},
success: function(msg) //更新成功
{
$(window.parent.document).find("#popDiv").css("display","none");
$(window.parent.document).find("#bg").css("display","none");
if(msg==1){
returnurl= url;
}else{
returnurl= "www.baidu.com";
}
}
});
return returnurl;
} 展开
3个回答
展开全部
为什么要同步调用呢。这个的确是会出现假死。还是异步调用吧,我前段时间也遇到过,后来改用异步调用才行。
异步调用在循环发出ajax请求的时候会出现不一致的现象,这种情况值能在当前的请求结束之后,在发出下一个请求,只能这样。用异步调用虽然可以解决这个问题,但是在ie下用户体验不好。
异步调用在循环发出ajax请求的时候会出现不一致的现象,这种情况值能在当前的请求结束之后,在发出下一个请求,只能这样。用异步调用虽然可以解决这个问题,但是在ie下用户体验不好。
更多追问追答
追问
可是我需要的是返回这个returnurl值,一旦采用异步,这个值就是空的,请教有什么好办法改造成异步吗
追答
可以这样改
function Popup(url){
var returnurl="";
$.ajax({
type: "GET",
url: "checklogin.php",
data: "sessionid=" +$("#sessionid").val()+"&localip="+$("#localip").val(),
async:false,
beforeSend :function(){
$(window.parent.document).find("#popDiv").css("display","block");
$(window.parent.document).find("#bg").css("display","block");
},
success: function(msg) //更新成功
{
$(window.parent.document).find("#popDiv").css("display","none");
$(window.parent.document).find("#bg").css("display","none");
if(msg==1){
returnurl= url;
}else{
returnurl= "www.baidu.com";
}
return returnurl;
}
});
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
alert($(window.parent.document).find("#popDiv"))看看。有没有东西,我直接怀疑没得到。分清是window.parent还是window.opener
追问
这个肯定有,只是同步造成的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询