0

次のコードを使用して、メール アカウントに自動的にログインしています。

$.ajax({
   async: false,
   cache: false,
   type: 'POST',
   dataType: 'html',
   data: ({
       '_token': token_value,
       '_task': 'login',
       '_action': 'login',
       '_timezone': '2',
       '_dstactive': '0',
       '_url': '',
       '_user': _username,
       '_pass': _password
   }),
   url: 'https://mail.somesite.com/index.php',
   success: function (data) {
       //after login get the central email page where the email count is displayed
       $.ajax({
           async: false,
           cache: false,
           type: 'GET',
           dataType: 'html',
           url: 'https://mail.somesite.com/index.php?_task=mail',
           success: function(data1) {
               var descNode = document.createElement("div");
               descNode.innerHTML = data1;
               var unreadcount = descNode.getElementsByClassName("unreadcount");
            /*process unreadcount etc*/
         },
         error: function () {
            // something went wrong with the request
            error_occurred();
            return;
         }
      });
   },
   error: function () {
      // something went wrong with the request
      error_occurred();
      return;
   }
})

問題は、ユーザーの未読メール数を取得するために「unreadcount」クラスのオブジェクトを取得した後、古いページを取得することです。

たとえば、メール アカウントにログインして、2 つのメールがあることを確認し、この関数を実行すると、2 つのメールがあることが通知されます。アカウントからログアウトし、別のアカウントから自分のアカウントにメールを送信してこの機能を再実行すると、新しいメールが見つかりません (まだ 2 つのメールしか表示されません)。私は data1 の内容を見ようとしましたconsole.log()が、関数が何も悪いことをしていないことを確信しています (「unreadcount」の値は実際にはまだ 2 であるため)。

もちろん、通常ログインすると、アカウントに 3 つのメールがあることがわかります。奇妙な (?) ことは、ログイン後 (ログアウトしても、この後) 上記の関数を実行すると、3 番目のメールが見つかることです。

これらすべてにより、キャッシュページに誘導されたという結論に至りましたが、キャッシュを常に false に設定しました。どうすればこれを回避できますか?

4

0 に答える 0