$ .ajax使用Firefox,而不是IE

时间:2010-05-14 20:05:49

标签: jquery

我有一个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 ?>

非常感谢您的帮助。

2 个答案:

答案 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
    }
  }
});