2010-11-18 8 views
0

私はajaxを使用して、生成されたコンテンツをメインDIVにロードしています。ajax-loadedサブページからのリロードページ

私がしたいのは、何らかのリロード機能があります。タイムアウトの期限が切れた場合、ユーザーに再認証してもらうために、コンテンツがdivにロードされる前にメニューのクリックでチェックしています。

私はこれをphpの ヘッダー( "location:login")で行います。

私はそれが負荷のdivの内側にリダイレクトしたいと思いますが、私は、ページ全体をリダイレクトするようにしたい...実際

答えて

1

あなたができる最善のは、あなたのファイルの先頭にこの

のようないくつかのものが

ob_start(); 

がで

if($_SEESION['active']){ 
    ob_end_flush() 
}else{ 
    ob_clean(); 
    echo "{Session_invalid}"; 
    ob_end_flush(); 
} 

その後、あなたのphpファイルの末尾にこれを追加でごAJAX(XMLHttpRequest)

ajax = new XMLHttpRequest(); 
ajax.open("GET", "/folder/yourFile.php", true); 
ajax.onreadystatechange = function(){ 
    if(readyState == 4){ 
     if(ajax.responseText == "{Session_invalid}"){ 
      document.location = "http://your.authenticate.url/" 
     }else{ 
      mydiv.innerHTML = ajax.responceText 
     } 
    } 
} 
ajax.send(); 

あなたが言ったことをあなたが言ったことに注意してください。あなたのajaxを削除しないでください。AJAXにチェックを入れるだけです。

このコードは、あなたがこれは user228395ポイント1

1

は、XmlHttpRequestのをリダイレクトしてもあまり意味がありません。基本的にはいくつかの選択肢があります。

  1. あなたのjavascriptのは、あなたが(その場合には、JavaScriptを使用してリダイレクト)直接に必要であることを理解しますあなたのAJAX呼び出しの戻り何かをしましょう。

  2. あなたが認証する必要があるかどうかを確認するためにdivにコンテンツをロードしようとする前に、AJAX呼び出しを行います。

  3. ユーザーのセッションが期限切れになっているかどうかを確認するために、変数/ Cookieを保持します。すべてのリクエストの前に、そうであるかどうかをチェックします。その場合は、ユーザーに認証させます。

幸運を祈る!

+0

こんにちはと一致する

もののそのわずか上部と下部の編集ので、PHPファイルがタグであっていることを確認してください、両方のおかげではなく、必ずその解決策はまだ、それをしようとします。私はajaxのためにjqueryを使っていると言っているのを忘れていました。私は成功フォームのjquery投稿でそれを取得し、それを "{Session_invalid}"レスポンスにマッチさせることができます。 – myha

関連する問題