相关疑难解决方法(0)

Internet Explorer缓存asp.netmvc ajax结果

我在网络浏览器中遇到了一个问题.当我点击它在控制器中传递的链接并正确加载数据时,我有一个调用表单的ajax调用,在其他浏览器中.但是在IE中,当它加载一次时,它会带来相同的旧结果,而不会传入控制器.

ajax asp.net-mvc internet-explorer caching asp.net-ajax

18
推荐指数
2
解决办法
1万
查看次数

Jquery.get()在IE8/9中不起作用.不会加载未修改的缓存页面304

Code Igniter版本'2.0.3'Jquery 1.7 Jquery History插件

嗨,大家好,

我有一个CodeIgniter应用程序,我以ajax方式构建.我有如下功能:

$(document).on('click','.ajax_link',function(e){
    //Stop the normal href action
    e.preventDefault();

    //Grab the destination URL
    var new_url = $(this).attr('href')

    //Grab the content via ajax and pass it to the history change function
    $.get(base_url+new_url,function(data){
        History.pushState({
            content:data.content,
            url:data.url
        }, data.title, data.url);
        //Refresh some site variables
        refresh();
    },'json');
});
Run Code Online (Sandbox Code Playgroud)

它只是通过一个ajax_link类捕获对锚元素的点击,并将响应发送到一个处理该响应数据放入页面的函数.

这适用于Chrome和FF.我点击链接,jQuery发出get请求,我得到一个JSON对象,我的history.pushState()函数将一些json数据注入我的页面.

我遇到的问题是在IE8中.基本上发生的事情是当我第一次打开应用程序时,链接可以工作,但它们只能工作一次.我第二次点击链接:

  • 是ajax GET
  • 收到304(未修改)的回复
  • 不调用jQuery.get()回调函数,因此停止死机.

如果我清除缓存它再次工作.所以我的假设是IE正在执行get请求,但后来它发现它已经在过去请求了完全相同的文件...因此完全停止了该过程.

有人知道解决这个问题吗?我已经看过在IE中提到304错误和ajax和缓存的错误但是还没有找到与我相同的问题.

任何帮助非常感谢

(在Windows虚拟机IE8和Internet Explorer 9中的IE 8模式上测试)

解决了

只需要将以下代码添加到我的document.ready函数中,问题就消失了.

$.ajaxSetup ({cache: false});
Run Code Online (Sandbox Code Playgroud)

ajax jquery caching internet-explorer-8 http-status-code-304

7
推荐指数
1
解决办法
5064
查看次数