这不是缓存问题,,并且代码在所有其他浏览器中都能正常运行。
我点击了一个简单的$ .get请求。随着Fiddler打开监视Internet Explorer 9 HTTP流量,我可以单击该按钮,我看到我的计算机上的www.mydatasource.com的HTTP流量为零。我从未见过任何人。
知道为什么我没有看到请求出去?谢谢!
$('#mybutton').click(function () {
$.get('http://www.mydatasource.com/', function(data){});
}
-------- ------------- UPDATE
还尝试了一种更原始的方法(在Internet Explorer 9中无效):
$('#mybutton').click(function () {
var data = httpGet('http://www.mydatasource.com/');
}
function httpGet(theUrl)
{
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", theUrl, false );
xmlHttp.send( null );
return xmlHttp.responseText;
}
在这种情况下,你会认为你会看到Fiddler的请求,但再一次,完全沉默。 我认为这可能是一个跨域问题,但已将所有内容(网页,脚本,“获取”网址)放在同一个域中,但仍然无法从Internet Explorer 8中获取任何流量。任何建议欢迎。
答案 0 :(得分:3)
这是因为Internet Explorer缓存了请求,因此请求仅在第一次触发时触发。
您可以使用ajaxSetup()来避免此
jQuery.ajaxSetup({cache: false});
$('#mybutton').click(function () {
$.get('http://www.mydatasource.com/', function(data){});
});
以这种方式将一个等于当前时间戳的变量发送到服务器,并且浏览器不会缓存该调用,因为参数已经更改。
您也可以
var noCache = new Date().getTime();
$.get('http://www.mydatasource.com/',{nocache: noCache}, function(data){});
答案 1 :(得分:0)
这是因为IE缓存请求。在网址末尾添加当前日期戳。在这种情况下,每个请求都将是唯一的URL:
$('#mybutton').click(function () {
$.get('http://www.mydatasource.com/?' + new Date().getTime(), function(data){});
}
答案 2 :(得分:0)
我可能错了,但你确定用.ready函数包装你的代码吗?
jQuery(document).ready(function($){
})