XMLHttpRequest对象的open方法的相对路径

时间:2013-02-13 21:50:02

标签: php javascript ajax path

在包含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存在问题,因为我将完全相同的文件/文件夹复制到桌面上,一切正常。

2 个答案:

答案 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 ......你可能会想象答案。