2012-06-10 108 views
3

我一直在嘗試了幾個小時做的fancybox加載php文件,沒有成功...Fancybox | Ajax請求不工作

下面是詳細信息:

您可以訪問有問題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加載,但沒有任何反應......

任何幫助將是非常讚賞。

回答

4

Fancybox ajax調用來自url的請求,從www開始,而您的鏈接沒有此部分。如果您在開始時用www.加載頁面,則該通話起作用。 這是由於瀏覽器的allow-control-access-policy。始終使用firebugchrome developer tools在控制檯中查找錯誤。

+0

非常感謝Wojtek。你非常快速,樂於助人!我添加了$ _SERVER ['HTTP_HOST'],而不是對域進行硬編碼,因此它可以在「www」和不在的情況下使用。 –

+0

你可以看看[這個](http://stackoverflow.com/questions/31351626/jquery-fancybox-with-ajax/31352383)的問題嗎?提前致謝。 –

2

這是一個跨域的問題(你不能從www.mysite從域mysite的。你會發現加載的內容,如果您有WWW訪問該網站的URL,那麼它的工作原理,是: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即可。

+0

謝謝dbaseman!我贊成你的正確答案。 –

+0

相對路徑不會工作,但... 因爲它會搜索:mysite/events-pc/pc-festival/1610-diethnes-festival-patras-2012.html/fancy_areas.php?areasName =ΠαλαιάΔημοτικάΛουτρά –