在包含Ajax请求的JavaScript文件中,相对于哪个URL是什么?我有www目录包含目录alpha和bravo。 alpha中的JavaScript文件和包含它的HTML文件以及以bravo方式处理请求的PHP。
在JavaScript文件中我有xmlhttp.open("GET", "CheckServer.php?name="+name,true);
,但我认为CheckServer.php
是对的。我试过了../bravo/CheckServer.php
,但它不起作用。
我没有使用JQuery而且我正在使用WAMP。
另外,我是否可以使用任何问题来查看是否首先访问处理请求的PHP页面?
编辑:我打开了控制台,它说我在JavaScript文件中调用的函数没有定义。这只发生在我将.js文件移动到另一个目录时。 (我适当地修改了<script>
标记:<script type="text/javascript" src="../alpha/Check.js">
。
编辑2:我认为WAMP存在问题,因为我将完全相同的文件/文件夹复制到桌面上,一切正常。
答案 0 :(得分:6)
它基于调用页面的当前位置而相对。它与从何处加载JavaScript无关。
打开控制台并查看Ajax请求[console或net tab],您将看到它正在请求的路径。
答案 1 :(得分:0)
这是一个URL,与目录本身无关。它们可能被映射到服务器上的目录并且通常是,但客户端永远不会知道它并且不关心它。 网址相对于当前的网址(您在浏览器地址栏中看到的内容)。
所以,问题不在于“CheckServer.php在服务器上的位置”,而是“如何从客户端访问它”。
如果是这样的话:
http://example.com/alpha/index.html
http://example.com/bravo/CheckServer.php
细。使用相对URL。
但如果是这样的话:
http://alpha.example.com/index.html
http://bravo.example.com/CheckServer.php
然后它变得复杂了。您将不得不研究CORS(跨域资源共享),因为AJAX通常不能跨不同的域工作。
哦,如果根本无法访问CheckServer.php ......你可能会想象答案。