2012-08-01 98 views
0

我正在實現Facebook連接進行身份驗證。我也想驗證我從facebook收到的用戶的電子郵件與內部數據庫(本質上是邀請列表)匹配。所以我使用下面的ajax調用。但是,重定向不會立即發生。用戶需要刷新窗口才能重定向。任何想法爲什麼以及如何解決這個問題?謝謝! 請注意,這發生在FB.api中,而FB.api又在window.fbAsyncInit中。在Ajax響應沒有立即重定向後使用window.location.replace

$.ajax({ 
        type: "POST", 
        url: "verifyLogin.php", 
        data: ("email=" + myEmail), 
        success: function(resp){ 
          if (resp == 'success') 
          { 
           window.location.replace('/index.php'); 
          } 
        }, 
        error: function(e){ 
        alert('Error: ' + e); 
        } 
        }); 
+1

爲什麼不只是window.location =「yoursite.com/index.php」? – peshkira 2012-08-01 22:10:44

+0

@peshkira - 這也行不通。用戶仍然需要刷新。請注意,用戶登錄一次後,當他們進入此頁面時,自動重定向工作正常。它僅適用於用戶第一次登錄的情況。 – tterbeg 2012-08-01 23:17:30

+0

好吧,所以我用下面的功能,它現在的作品。仍然不知道爲什麼Ajax響應無效,現在必須更改代碼以確認該函數的電子郵件地址匹配。謝謝您的幫助! FB.Event.subscribe('auth.login',function(response){ window.location.replace('index.php'); }); – tterbeg 2012-08-01 23:30:10

回答

0

這應該是請求返回成功後你測試,如果你是不是Facebook的窗口類中的響應立即發生?

如果你還沒有從verifyLogin.php

返回單詞「成功」的RESP檢查應沒有必要

告訴我們更多地瞭解你的意思,立即。

+0

有一個(resp =='失敗')的情況,我沒有在上面簡單添加。馬上,我的意思是它應該是用戶的自動重定向。但是,發生的情況是該頁面保持不變,如果您在頁面上點擊「刷新」,則會進行重定向。請注意,用戶登錄一次後,當他們進入此頁面時,自動重定向工作正常。它僅適用於用戶第一次登錄的情況。 – tterbeg 2012-08-01 23:16:17