2011-08-04 8 views
1

私はFacebookログインボタンを持っています。彼らがログインした後、私はその資格情報を収集し、セッションに記録します。そして、AJAX呼び出しの後、私はJavaScriptを使用して、このようにページを更新:Javascript location.reload(true);私のリクエストとajaxコールがうまくいきません

location.reload(true); 

これは、リクエスト変数を混乱しているようだとAJAXは呼び出されません。私がリフレッシュする前にajax呼び出しが完了するのを待つ方法はありますか?

このような状況で人々は通常何をしていますか?

ありがとうございます!

PS - 誰でも試してみたい場合、私は、このテストページでこれをテストしてい:http://www.comehike.com/test_fb_connect.php

答えて

2

なぜコールバックでリフレッシュを入れませんか? AJAXリクエストが終了した後

request.onreadystatechange = function(){ 
    if (request.readyState == 4){ 
     var xmlDoc = request.responseXML; 
    } 
    location.reload(true); 
} 

onreadystatechangeコールバック関数が呼び出されます。つまり、すべてのAjaxの処理が完了したことを知っているので、ページを更新するときです。コールバックの後にlocation.reload(true)を置くと、コールバックの前に実行されます。 onreadystatechangeコールバックの前にrequest.send(null)が実行されます。

+0

これはオプションだった実現しませんでした。私はjsとajaxにうんざりです:) – Genadinik

+0

あなたのコードはまったく違った動作をしますか?あなたはrequest.send(null)を取り出しました。 ...効果は何ですか? – Genadinik

+0

btw、それはうまくいきませんでした:( – Genadinik

1

これを試してみてください:

self.location = 'your.link'; 

オーデル:

window.location.reload(); 
関連する問題