【问题标题】:Jquery .load 304 not-modifiedJquery .load 304 未修改
【发布时间】:2011-10-25 21:34:53
【问题描述】:

好的,我正在使用 .load 函数将一个 div 从一个页面加载到当前页面:

<code>
         $(document).ready(function(){ 
         var myUrl = "test.php"
      $("#tags-load").load(myUrl + " #tags");
      $("#share-load").load(myUrl + " .shareinload");
      $("#comments-load").load(myUrl + " #comments");     
         }); 
</code>

这是我的问题,上述方法在 IE 8 及更低版本中无效,但在 IE9 和 Chrome 和 Firefox 中有效。

我做了一些乱七八糟的事情,发现上面的代码可以在 IE8 中工作,但只有当我没有从 test.php 调用任何图像(img 标签图像和背景图像都没有)时。然后我检查了 HTTP 代码以查看是否出现错误,结果发现在加载图像时出现 304 错误。这让我相信 IE8 在缓存图像时一定有某种挂断。所以我修改了我的代码以关闭对 jquery 请求的缓存:

<code>
$.ajax({
  cache: false
  });
     $(document).ready(function(){ 
     var myUrl = "test.php"
  $("#tags-load").load(myUrl + " #tags");
  $("#share-load").load(myUrl + " .shareinload");
  $("#comments-load").load(myUrl + " #comments");     
     });
</code>

尽管更改了代码,但我仍然收到 304 错误。我对 Jquery 很陌生,我被困在这里,如果有人可以帮助我找到解决方案,将不胜感激,

谢谢

【问题讨论】:

  • 你是跨域做的吗?这可以解释为什么:)
  • 同一个域名,抱歉我没有在帖子中提及。

标签: ajax jquery internet-explorer-8


【解决方案1】:

没有理由提出 3 个页面请求,如果它是同一个页面。

你可以试试这个:

var myUrl = "test.php";
$.ajax({
  url: myUrl,
  cache: false,
  success: function(html){
    var tags = $('#tags',html).html();
    var shareinload = $('.shareinload',html).html();
    var comments = $('#comments',html).html();
    $("#tags-load").html(tags);
    $("#share-load").html(shareinload);
    $("#comments-load").html(comments);
  }
});

【讨论】:

  • 我知道有更好的方法来做到这一点,感谢您使它更加精简(现在加载速度更快)。但是我的 304 错误问题在 IE8 中仍然存在。我知道很多人在 IE8 中使用 .load 时遇到问题,有人遇到过解决方法吗?
  • 嗯,我通常会收到错误,当接收代码包含破坏加载内容的错误时。发送成功,但获取失败?
  • 是的,就像您说它发送正常但无法获取一样。我尝试在 test.php 中使用一些简单的代码,但在所有浏览器中都出现 304 错误: ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" rel="nofollow" target="_blank">w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > w3.org/1999/xhtml"> 无标题文档
    标签
    分享
    评论
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 2012-08-18
相关资源
最近更新 更多