【问题标题】:Fancybox | Ajax request not working花式盒 | Ajax 请求不起作用
【发布时间】:2012-06-10 19:26:49
【问题描述】:

我已经尝试了好几个小时让 fancybox 加载一个 php 文件,但没有成功......

详情如下:

您可以访问有问题的网站here。当您单击每个图像旁边的“Παλαιά Δημοτικά Λουτρά”或“Αρχαίο Ωδείο”时,就会调用 Fancybox 请求。

首先,页面的内容是通过 ajax 请求加载的。此页面包含链接:

<a class="area_fancybox" href="http://www.mysite/fancy_areas.php?areasName=' . $the_area . '">' . $the_area . '</a>

$the_area 变量是我要传递给fancybox 将加载的php 文件的参数。现在,当页面的内容加载完毕后,我添加了 fancybox 代码,如下所示。

jQuery('#diethnes_festival_2012').load('../../../diethnes_festival_2012.php', function() {
  jQuery("a.area_fancybox").fancybox();
});

当您点击“area_fancybox”链接时,fancybox 开始加载,但没有任何反应...

任何帮助将不胜感激。

【问题讨论】:

    标签: jquery ajax fancybox


    【解决方案1】:

    Fancybox 来自以www 开头的 url 的 ajax 调用请求,而您的链接没有这部分。如果您在开始时使用www. 加载您的页面,则该调用有效。 这是由于浏览器的allow-control-access-policy。始终使用firebugchrome developer tools 在控制台中查找错误。

    【讨论】:

    • 非常感谢 Wojtek。你真的很快,乐于助人!我没有对域进行硬编码,而是添加了 $_SERVER['HTTP_HOST'],因此它既可以使用“www”,也可以不使用。
    • 你能看看this的问题吗?提前致谢。
    【解决方案2】:

    这是一个跨域问题(您不能从域 mysite 加载来自 www.mysite 的内容。如果您访问URL 中包含 www 的站点,然后它按原样工作:http://www.mysite/events-pc/pc-festival/1610-diethnes-festival-patras-2012.html

    我建议在 href 中使用相对路径,这将使您的代码适用于两种情况:

    <a class="area_fancybox" href="/fancy_areas.php?areasName=Παλαιά Δημοτικά Λουτρά">Παλαιά Δημοτικά Λουτρά</a>
    

    顺便说一句,如果您还没有的话,我建议您检查一下 Firebug——它对于调试这类东西真的很有帮助。如果您使用的是 Chrome,只需按 ctrl-shift-J。

    【讨论】:

    • 相对路径不起作用...因为它会搜索:mysite/events-pc/pc-festival/1610-diethnes-festival-patras-2012.html/fancy_areas.php? areaName=Παλαιά Δημοτικά Λουτρά
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 2012-11-28
    • 2014-12-28
    • 2017-02-11
    • 2016-05-08
    • 2015-09-08
    • 2013-09-21
    相关资源
    最近更新 更多