Ajax调用似乎被缓存在IE11中,如何每次都强制执行此调用?

时间:2018-06-20 16:13:58

标签: javascript jquery ajax internet-explorer

我有一个AJAX调用,每次在Mozilla和Chrome浏览器中都会触发,但不会在IE11中触发。思想得到赞赏。

function getOrders(customerId) {
  alert('Test1');
  $.ajax({
    type: "GET",
    url: '/Orders/GetOrders',
    data: ({ customerId: customerId}),
    dataType: 'html',
    success: window.updateTable
  });

  alert('test 2');
}

1 个答案:

答案 0 :(得分:2)

如前所述,您可以为cache: false调用提供ajax参数。

更通用的方法是使用cache-busting技术。一种常见且简单的方法是将额外的数据附加到URL。时间戳对此非常有效:

$.ajax({
  type: "GET",
  url: '/Orders/GetOrders',
  data: ({ customerId: customerId, cacheBust: Date.now() }),
  dataType: 'html',
  success: window.updateTable
});

这将创建如下网址:/Orders/GetOrders?customerId=123&cacheBust=123579285。令人高兴的是,每次调用的时间戳都不同,因此它实际上是一种新资源,不会被缓存。

几乎在每种情况下,都可以使用这种技术来避免浏览器缓存。