我有一个jQuery代码,允许用户使用灯箱(http://colorpowered.com/colorbox/)登录并立即开始下载文件,而不会被重定向或重新加载页面。它完全适用于Firefox,但是在我重新加载页面之前,Internet Explorer一直显示登录框:(
<? if (!$this->session->userdata('user_logged_in')): ?>
<script type="text/javascript">
$(document).ready(function() {
$('a[href^="/link/"]').click(function(event){
var status = $.ajax({
url: "/status",
async: false
}).responseText;
if (status != 'USER_LOGGED_IN')
{
$.fn.colorbox({href:"/login"});
event.preventDefault();
}
});
});
</script>
<? endif ?>
非常感谢您的帮助。
答案 0 :(得分:1)
问题是默认情况下jQuery.ajax使用GET请求检索数据,这些请求由IE缓存。您可以通过告诉浏览器不缓存AJAX结果来解决此问题:
$.ajax({
url: "/status",
async: false,
cache: false
})
答案 1 :(得分:0)
如果在$ .ajax部分设置之前检查变量status
,它将继续将您发送到登录屏幕。尝试在成功检索之后检查状态,如下所示:
$.ajax({
url: '/status',
async: false,
success: function(status) {
if (status != 'USER_LOGGED_IN') {
// etc
}
}
});