C# Jquery Ajax请求在IE 10上不起作用(由于缓存)

C# Jquery Ajax请求在IE 10上不起作用(由于缓存),c#,jquery,internet-explorer,asp.net-mvc-4,C#,Jquery,Internet Explorer,Asp.net Mvc 4,我想从这个开始。我受够了IE。我的代码如下: $(function () { $("#cal").on('click', "#forward", function () { $.ajax({ url: "Home/Calendar?target=forward", type: "GET", success: function (result) { $("#cal").html(result); }

我想从这个开始。我受够了IE。我的代码如下:

$(function () {
$("#cal").on('click', "#forward", function () {
    $.ajax({
        url: "Home/Calendar?target=forward",
        type: "GET",
        success: function (result) {
            $("#cal").html(result);
        }
    });
  });
});

 $(function () {
$("#cal").on('click', "#backwards", function () {

    $.ajax({
        url: "Home/Calendar?target=backwards",
        type: "GET",
        success: function (result) {
            $("#cal").html(result);
        }
    });
});
});
它是对C#MVC应用程序中控制器操作的ajax调用。它只是在日历的几个月内来回替换html。现在我知道由于
html()
调用,您需要重新附加事件,这就是为什么我在JQuery 1.7中使用
on()
。我也使用了
delegate()
。在FF中,它按预期工作。在IE 10中,它不是。我不知所措。我知道IE在IE8和JQuery<1.5中与委托有问题,但事实并非如此


有人知道如何解决这个问题吗?

我回答这个问题只是为了将来供其他人参考。IE缓存AJAX请求似乎是出于某种我无法理解的原因

我注意到,使用IE10提供的开发工具(出人意料地好),我得到了对AJAX请求的304而不是修改的响应。Firefox和Chrome的情况并非如此(200是响应)

我在AXAJ JQuery函数中添加了
cache:false
选项,现在它可以正常工作了


我从来没有抓住过使我吃惊的东西

简单的补充,考虑到我对这个问题的了解(很少)。显然,XmlHttpRequest规范说XHR GET命令的行为与标准网页检索(例如,单击常规的旧链接)类似,因此可以缓存XHR GET命令。IE团队选择遵守这一规范,而其他浏览器制造商则没有。虽然我可以在这种方法中看到一些逻辑,但我认为我们这些每天处理XHR请求的人会强调说,我们希望缓存在默认情况下关闭,而不是打开。(-;

我很久以前在IE中遇到过这个问题……现在我总是强调使用随机尾随键/值对编写ajax调用

我还添加了
cache:false
,虽然我发现它本身并不总是做它应该做的事情(好吧,也许只是IE没有做它应该做的事情)

这就是我设置它们的方式

$('#trigger').submit( function(e){

    e.preventDefault();

    var randnum = Math.floor(Math.random()*1001); //magic starts here

    $.ajax({
        type: "POST",
        url: "folder/file.php",
        cache: false,
        data: "random=" + randnum, //pure magic
        success: function(){
            // do stuff here
        }

    }); 

});

也遇到了这个问题。如果POST响应具有
缓存控制:max age
,则上述所有修复都将无效。第一个请求将获取数据,但在此之后,所有请求(即使您添加了随机属性)都将无效

在这种情况下,IE甚至不会询问服务器内容是否更改,它只是假设如果它有
max age
,那么执行请求就没有意义


此外,XHR规范说304不应该传递任何数据,因此基本上你会得到一个帖子的空响应(仅在IE 9和10上)。

这有帮助吗?没有,我将此代码加载到另一个文件中,该文件使用Scripts.Render(“~Scripts/calendarJS.js”)加载因此,这不是类型的问题。我还添加了文档加载,但仍然没有。这是一个很棒的+1。
:)