2014-04-16 26 views
0

我創建了一個AJAX選舉器,它似乎只能在根域上工作。因此,如果我正在查看主頁mydomain.com,則該頁面上的投票功能完全可用。如果我正在查看mydomain.com/topic/article2.html中的內容,則不起作用。出於某種原因,腳本似乎無法找到vote.php文件,即使我將它放在根目錄中。 Ajax請求提供狀態500(內部服務器錯誤),我期望404找不到文件。我玩了一些不同的參考位置組合,比如「./vote.php」和「vote.php」,問題沒有改變。我也嘗試將vote.php文件放置在其他位置,但我嘗試放置的地方都沒有。任何幫助將不勝感激,因爲我已經花了數小時在線閱讀可能的解決方案,但無法找到解決方案。AJAX腳本只能在根目錄下工作

我在Joomla 2.5和Seblod 3.1中使用腳本,如果有幫助的話。

在我的腳本中沒有發生什麼瘋狂的事情,但我認爲它與「./vote.php」有關,也許有一種方法可以強制服務器從其他位置檢查根目錄。

<script> 
function SetVote(vote_choice, a, u) 
{ 

if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 

    // document.write(xmlhttp.responseText); 
    document.getElementById("result"+a).innerHTML=xmlhttp.responseText; 
    } 
    }  
xmlhttp.open("GET","./vote.php?vote="+ vote_choice + "&a=" + a + "&u=" + u,true); 
xmlhttp.send(); 
} 
</script> 
+0

使用螢火蟲,它似乎服務器試圖訪問它像「mydomain/index.php/vote.php」,所以它堅持在那裏index.php自動。也許這是問題,我可以重寫這個? – user3538526

+0

如果我在joomla服務器中關閉SEF,它似乎可以正常工作,但它會弄亂我的頁面,並且我希望SEF:( – user3538526

回答

0

在尋路的術語:

  • /指的根目錄
  • ./意味着當前目錄
  • ../意味着當前目錄的上級目錄。

所以,只要你不在服務器端工作,/vote.php應該解決這個問題。

+0

因爲它會變成在我的服務器上,工作解決方案不僅僅是「/」而是「/domainname/vote.php」,我不知道這是否是標準的,以使根級高於域文件夾。/。/ ../ 分解。 – user3538526

0

命令「./」將只通過一個子目錄移動你失望1(如果你有在/ PHP /提交「./」將引用‘/ PHP的’而不是‘/’的文件。)嘗試替換「./vote.php?」用「/vote.php」。

+0

./並不會讓你失望,它可以讓你保持正確的位置) –