我遇到了一个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();
}
答案 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
,那就可以了。