我遇到了问题,猜猜看,IE8。为了清楚起见,下面的代码根本不起作用:
alert('before get');
$.get(getActivityURL('ActionName',{
ts: new Date().getTime(), ...other params...}),
{cache:false;},
function (xml) {
alert("in get callback");
},'xml'); // End $.get()
alert('in after get');
getActivityUrl() 输出带有请求参数的有效 URL。
这在 FF 和 Chrome 中可以正常工作。然而,在 IE8 中,这甚至不会进入 $.get() 回调。我收到“之前”和“之后”警报,但没有收到“中”警报,实际上,什么也没有发生,请求也没有发送。我真的不知道该怎么想。
响应 header 为“Content-Type:application/xml; charset:iso-8859-1”,如 FF 中所确认。
编辑:$.post() 也不起作用。
最佳答案
IE 因缓存而臭名昭著。因此,您需要确保您没有获得缓存的结果。
您可以通过将 ajaxStart
中的缓存属性值设置为 false 来全局禁用缓存。方法。
$.ajaxSetup({
cache: false
});
或者,如果您想消除特定 ajax 调用中的缓存结果,请在 url 末尾附加一个唯一的数字。您可以使用$.now()
获取唯一编号的方法
$.get("someurl.php?" + $.now() ,function(result) {
// do something with result
});
$.now()
方法返回一个代表当前时间的数字。
关于ajax - Jquery .get() 在 Internet Explorer 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692985/