我使用以下代码自动登录我的电子邮件帐户:
$.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封电子邮件)。我已经尝试用console.log()
查看data1的内容,我很确定该函数没有任何错误(因为'unreadcount'的值确实仍然是2)。
当然,当我正常登录时,我可以看到我有3封电子邮件进入我的帐户。奇怪的(?)事情是在登录后(即使我在此之后退出)并运行上述功能,它会找到第三封电子邮件。
所有这些让我得出结论,我被引导到缓存页面,但我在任何时候都将缓存设置为false。我怎样才能避免这种情况发生?