Fancybox | Ajax请求不起作用

3

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

下面是详细信息:

您可以访问存在问题的网站这里。当您单击每个图像旁边的“Παλαιά Δημοτικά Λουτρά”或“Αρχαίο Ωδείο”时,将调用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开始加载,但没有任何反应... 非常感谢您的帮助。
2个回答

4

Fancybox 发起的 ajax 请求需要以 www 开头的 url,而你的链接没有这部分。如果你在页面加载时在开头加上 www.,那么请求会正常工作。 这是由于浏览器的 allow-control-access-policy 导致的。请始终使用 firebugchrome developer tools 在控制台中查找错误。


非常感谢你,Wojtek。你真的很快也很有帮助!我没有硬编码域名,而是添加了 $_SERVER['HTTP_HOST'],这样它就可以同时适用于带有“www”和不带有的情况。 - m.spyratos
你能否请看一下这个问题?链接。先谢谢了。 - Jack

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?areasName=Παλαιά Δημοτικά Λουτρά - m.spyratos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接