最近在做ucenter的單點登入,因為本站是ajax登入,通過ucenter傳回的js代碼通過ajax傳回至前端,通過$("#abc").html();進行執行,發現一個惡心的問題,由于背景判斷使用者登入成功,導緻直接就跳轉至登入後的首頁了,這樣結果就使 生成cookie的js代碼執行一半就跳轉了,然後就失敗了,使得有的站點生成了,有的沒生成。經過“a fat boy”的指點,解決方法如下:
1.通過ajax 背景通過uc生成js代碼 正則獲得其中的src ———— preg_match_all('/src=\"(.+?)\"/',$info,$todo); $todo為src的http連結
2.傳回至前台,在該ajax 的success方法裡 添加如下代碼:
var istrue=0;
if(i.info){
//循環連結的數組對象
for(var key in i.info){
try{
$.ajax({
url:i.info[key], //通路每一個連結
dataType:"script",
success:function(d){
istrue++;
//當循環到最後一個的時候再跳轉
if(istrue == i.info.length){
if(i.data==0){
window.location.href = U('public/Index/index');
}else{
window.location.href = i.data;
}
}
}
});
}catch(ex){
alert(ex);
}
}
}
該解決方法直接解決的上面提到的問題,直到執行至最後一個連結再跳轉