天天看點

ucenter通過ajax單點登入,由于頁面跳轉太快cookie執行一半就跳轉導緻生成失敗

最近在做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);

}

}

}

該解決方法直接解決的上面提到的問題,直到執行至最後一個連結再跳轉