相对路径在Ajax中不起作用

时间:2012-09-24 15:48:00

标签: php javascript ajax

我遇到了一个AJAX的奇怪问题。我有一个HTML页面,在此页面上调用AJAX函数:

的public_html /测试/ books.html

我试图调用的AJAX文件位于此页面上:

的public_html /列表/包含/ vote_up.php

我试图以唯一合乎逻辑的方式将其包括在内,这就是:

xmlhttp.open("GET","../lists/include/vote_up.php?id="+id,true);

但请求永远不会到达PHP文件。我究竟做错了什么?在相同的books.html页面上,我有几个包含来自'lists / includes'文件夹的工具,例如:

include('../lists/include/functions.php');

这是使用绝对路径的更新函数:

function voteUp(id){

    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.getElementById("item_voting"+id).innerHTML=xmlhttp.responseText; 
        }
    }

    xmlhttp.open("GET","mydomain.com/lists/include/vote_up.php?id="+id,true);
    xmlhttp.send();
}

2 个答案:

答案 0 :(得分:0)

绝对路径something.com/lists/include/voice_up.php应该可行,现在我认为,因为你仍然在public_html文件夹中,即使你提供的相对路径也应该运行良好,因为我经常将它们用于图像和.css文件。我建议发布更多代码以明确说明。

答案 1 :(得分:-2)

这里的问题是您在xmlhttp.open函数中使用系统路径。 Javascript在客户端执行,因此系统路径没有任何意义。在这种情况下,..符号无法使用。你应该提供一个URL。如果您要改为domainname.domain/lists/include/voice_up.php,那就可以了。