4

在包含 Ajax 请求的 JavaScript 文件中,URL 与什么相关?我有包含目录 alpha 和 bravo 的 www 目录。alpha 中的 JavaScript 文件和包含它的 HTML 文件,以及处理请求的 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 存在问题,因为我将完全相同的文件/文件夹复制到桌面并且一切正常。

4

2 回答 2

6

它是相对的,基于调用它的页面的当前位置。它与从何处加载 JavaScript 无关。

打开控制台并查看 Ajax 请求 [控制台或网络选项卡],您将看到它正在请求的路径。

于 2013-02-13T21:51:17.107 回答
1

这是一个 URL,与目录本身无关。它们可能被映射到服务器上的目录,并且通常是,但客户端永远无法确定并且不在乎。URL相对于当前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 根本无法访问……您可能可以想象到答案。

于 2013-02-13T22:02:20.330 回答