2010-07-26 41 views
1

我在JQuery中遇到AJAX调用问题。它适用于Chrome,FF和Safari,但不适用于IE。实际上在IE中什么也没有发生,没有错误,没有数据加载。Jquery.Get()在Internet Explorer中取NULL NULL

下面是代码:

$(document).ready(function() { 

    $.ajaxSetup({ cache: false }); 

     $.get("ShoppingCart2.aspx", { }, function(data) { 
      //query the jq object for the values 

     alert(data);  
     alert($(data).find('#Items').text()); 


     var intI = parseInt(($(data).find('#Items').html())); 

在警报数据,我觉得从我正在从调用页面中的所有数据,但不幸的是我的data.find方法拉起空的IE浏览器。我不确定它是代码还是浏览器,但我真的被卡住了。感谢您的帮助。

编辑:我没有添加缓存:false命令,但仍然没有运气。我真的不明白为什么这在IE中不起作用。

+0

如果这是一个缓存问题,它不会被解决只有JavaScript,你需要实际上有服务器访问和修改传出标题,请IE浏览器,http://stackoverflow.com/questions/3288500/unable-to -change-session-variable-through-ajax-in-ie /否则,尽管使用一些随机数据修改了网址,但您仍然可以从服务器获得大量304。由于实际的消息体尚未被修改。 – Anders 2010-07-26 13:14:49

+0

我试过这样做,但没有奏效。我也很好奇,为什么我的警报(数据);会拉起我从中提取信息的网页上的所有数据,但为什么我的data.find不工作......这是一个缓存问题,因为我可以拉起整个页面的实际html警报(数据); ? – Daniel 2010-07-26 13:34:25

回答

0

嗯,我无法在Internet Explorer中不用彷徨工作.find一部分,但我没有找到一种方式来获得我所需要的AJAX信息:

VAR信息= $阿贾克斯({类型:“GET”,dataType:“html”,url:“ShoppingCart2.aspx”,data:querystring,async:false})。responseText +“”;

这将查询字符串传递到网站,然后从网站获取信息返回到一个大字符串。我然后 操纵该字符串来得到我需要的。不幸的是它比.get命令慢很多,但它是一个修复。

感谢大家的帮助!

2

试试这个(曾经在你的页面/外部JS,你的AJAX调用前):

$.ajaxSetup({ cache: false }); 

IE喜欢缓存地狱出来的东西,如果你正在测试,也没有内容有有一点可能是IE正在坚持下去。使用$.ajaxSetup()和和默认告诉不是缓存AJAX结果应该可以解决这个问题。如果你很好奇,它会在URL上粘贴一个时间戳作为缓存中断器,使用提琴手来看看发生了什么。

0

它可能缓存AJAX?

$.ajaxSetup({ cache:false }); 
0

一个快速的解决方案,无需编码可能是按CTR + F5刷新时清除缓存:如果你把这个代码之前会发生什么。