Jquery Internet Explorer 8不触发AJAX调用

Jquery Internet Explorer 8不触发AJAX调用,jquery,ruby-on-rails,ajax,internet-explorer,Jquery,Ruby On Rails,Ajax,Internet Explorer,我已经为这个问题挣扎了一段时间,类似问题的建议根本没有帮助。我正试图在RoR应用程序中对$(document).ready进行AJAX调用,并从简单的$.get()开始,如 $(文档).ready(函数(){ $.get('/render_single_stats/'); }); 这在Opera、Chrome和Firefox中有效,但在IE中无效。 在搜索了这么多答案后,我试着 $(document).ready(function(){ var timestamp = new Dat

我已经为这个问题挣扎了一段时间,类似问题的建议根本没有帮助。我正试图在RoR应用程序中对$(document).ready进行AJAX调用,并从简单的$.get()开始,如


$(文档).ready(函数(){
$.get('/render_single_stats/');
});
这在Opera、Chrome和Firefox中有效,但在IE中无效。 在搜索了这么多答案后,我试着

$(document).ready(function(){
    var timestamp = new Date();
    $.ajax({type : 'POST', url : '/render_single_stats/<%=@user_params.id%>' + '&timestamp=' + timestamp.getTime(), cache : false, contentType : 'application/javascript'});

});
</script>
$(文档).ready(函数(){
var timestamp=新日期();
$.ajax({type:'POST',url:'/render_single_stats/'+'×tamp='+timestamp.getTime(),cache:false,contentType:'application/javascript'});
});
这个电话也不走运

我非常确定jQuery库已经加载,因为其他函数正在工作。我使用的是最新的jquery rails gem

我还试图强制使用IE7兼容模式,但没有成功

所以,在尝试了大多数建议之后,我是遗漏了什么还是做错了

编辑:

事实证明,问题与我的jQuery版本有关(从1.5.2切换到1.7.1),然后我不得不更改html以使其对IE有效。在意识到这一点之前,我对服务器响应进行了一步一步的检查,将其作为原始html,然后jQuery.html()似乎不起作用,这导致了html的验证

该死的小鬼:(


所以,谢谢你们的回答,但我不能将这些答案标记为正确,因为问题出在其他地方。

我在IE上也有类似的问题,问题是IE正在“捕获”ajax调用的响应,所以它将只执行一次ajax调用,然后所有其他时间都将使用第一个原始响应。 您可以通过关闭和打开浏览器来测试这一理论。 修复程序基本上是告诉IE不要捕获响应,您可以通过向ajax响应中添加以下标题来实现这一点:

response['Cache-Control']='no-store, no-cache, must-revalidate, post-check=0, pre-check=0'
response['Pragma']='no-cache'
response['Expires']='Sun, 19 Nov 1978 05:00:00 GMT'

由于您正在检索RJS模板,请尝试以下操作:

$.getScript('/render_single_stats/<%=@user_params.id%>/');
$.getScript('/render_single_stats/');
根据jQuery文档

使用HTTP GET请求从服务器加载数据

使用GET HTTP请求从服务器加载JS文件,然后执行它。


您正在
get
ting一个文件,但没有对结果执行任何操作…打开Ie中的调试并告诉我们您遇到的错误get@Kolink响应是RJS模板,它完成了它的功能-至少在其他浏览器上。调用甚至没有触发一次。但是,我添加了这些头,但仍然没有运气。我检查了它们是否通过了。这不是由缓存:false或仅使用getScript(),默认情况下有cache:false?对我来说,即使我在ajax调用中有cache:false,IE仍然在捕获调用,因此我必须在我的响应头上明确说明。如果您还没有这样做,我将在您尝试执行ajax调用时尝试查看IE正在做什么。您可以在IE上安装一个名为Debu的工具gBar,在那里您将能够看到所有HTTP(s)调用、响应、头等等,这可能会给您提供更多线索。
$.getScript('/render_single_stats/<%=@user_params.id%>/');