我正在使用以下代码自动登录到我的电子邮件帐户:
$.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;
}
})
问题是,在获取一个具有“未读计数”类的对象以获取用户的未读电子邮件计数后,我得到了一个旧页面。
例如,如果我登录我的电子邮件帐户,看到我有 2 封电子邮件并运行此功能,我将被告知我有 2 封电子邮件。如果我从我的帐户注销,从另一个帐户向我的帐户发送一封电子邮件并重新运行此功能,它将找不到新的电子邮件(它仍然只会显示 2 封电子邮件)。我已经尝试查看 data1 的内容,console.log()
并且我很确定该函数没有出错(因为 'unreadcount' 的值确实仍然是 2)。
当然,当我正常登录时,我可以看到我的帐户中有 3 封电子邮件。奇怪的是(?)登录后(即使我注销,在此之后)并运行上述功能,它会找到第三封电子邮件。
所有这些都让我得出结论,我被引导到一个缓存页面,但我在任何情况下都将缓存设置为 false。我怎样才能避免这种情况发生?