【问题标题】:Jquery/AJAX Dynamically Loaded Content not Loading LocallyJquery/AJAX 动态加载的内容未在本地加载
【发布时间】:2015-02-25 18:06:50
【问题描述】:

我对 Ajax 和将内容动态加载到 div 感兴趣。我已经使用 jQuery 几个月了,但我是 Ajax 的新手。我在网上找到了这个可下载的教程:here 效果很好,但是当我下载它并在本地测试时,内容并没有动态加载。网页是否需要实时才能动态加载内容?如果这是真的,你如何测试ajax?我使用 XAMPP 动态加载 PHP 内容,但没有尝试使用 Ajax。 下面是用于加载内容的简单 jquery:

$(document).ready(function(){
    $('a').click(function(e){
    e.preventDefault();
    $("#dynamic").load($(this).attr('href'));
    });
});

任何将我引向正确方向的想法都会有所帮助。谢谢!

【问题讨论】:

  • 你也可以发布html吗?
  • 我预计由于 Same-origin policy 导致的一些错误正在您的 javascript 控制台中记录,可以通过在大多数常用浏览器上按 F12 来查看。

标签: jquery ajax dynamic


【解决方案1】:

对于 ajax 请求,您必须在 Web 服务器的上下文中运行页面,如以下问题所述:"Cross origin requests are only supported for HTTP." error when loading a local file。如果您从原始帖子下载示例并尝试从文件系统的浏览器中打开 index.html 页面,您应该会在 JavaScript 控制台中看到如下错误:

只有协议方案支持跨源请求:http、 数据、chrome、chrome-extension、https、chrome-extension-resource。

所以是的,要回答您最初的问题,该页面必须是“实时”的,因为它托管在 Web 服务器中。您可以通过在开发机器上运行本地 Web 服务器并使用它来提供页面来进行测试。

【讨论】:

  • 太棒了,迈克尔!现在效果很好。如果我可以对您的评论进行投票,我会的,但是我太新了。谢谢! :)
  • 欢迎来到 SO,很高兴我能提供帮助!如果它解决了您的问题,您可以将我的答案标记为已接受的答案(即使您还不能投票)
【解决方案2】:

这里是工作代码,将load改为html;

$(document).ready(function(){
        $('a').click(function(e){
           e.preventDefault();
           $("#dynamic").html($(this).attr('href'));
        });
 });

这里是plunker

【讨论】:

  • 这只会将a标签的href属性中的文本加载到div中。她希望将链接返回的内容加载到 div 中。
  • 是的,迈克尔是正确的。我确定我可以让它工作.. 但我的问题是为什么 exact 文件在现场演示中工作,但是当我下载它并在本地运行它时,它无法拉入新内容?
猜你喜欢
  • 2013-01-19
  • 1970-01-01
  • 2011-06-14
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多