【问题标题】:Jquery $.get() method taking url from root.WhyJquery $.get() 方法从 root.Why 获取 url
【发布时间】:2012-05-20 05:09:28
【问题描述】:

我有一个根文件夹 www 有一个名为 myweb 的文件夹,其中存在两个页面 raw.php 和成熟.php。 现在我的 raw.php 脚本代码

<script>
 $.get("ripe.php", function(result){
 $("body").append(result);
  });
</script>

不工作。工作代码是

<script>
 $.get("myweb/ripe.php", function(result){
 $("body").append(result);
  });
</script>

现在我想知道为什么它从 jquery 的根文件夹中获取 url。我怎样才能让它获取当前文件夹的 url

【问题讨论】:

  • 进行这些 ajax 调用的文件在哪里?两者都相对于当前页面。
  • @Joseph 你指的是第一个块代码吗
  • 你不能从网络服务器的文档根目录中引用,这样调用文件的位置就无关紧要了吗?类似$.get('/myweb/ripe.php') ...
  • 我不想在所有页面中写完整地址
  • 无论哪个js存在,总是从root获取url:-)

标签: php javascript jquery function directory


【解决方案1】:

这取决于您执行该 JS 的文件所在的位置。

如果它位于http://www.mydomain.com/myweb/raw.php,那么成熟.php 也必须在那里。

【讨论】:

  • 也许您可以给我们这些文件的实际链接(以防它们不包含敏感信息)。
  • 它们在 localhost 中是无链接的
  • 没有什么好说的了:确保您使用的是正确的路径。 Chrome 的 JS 控制台 (ctrl+shift+J) 可以记录请求,只需在其中右键单击并在下拉列表中启用 XmlHttpRequest 记录以查看 $.get 实际请求的内容。 Firebug 可能有类似的选项。
  • 我正在使用 Chrome,这就是为什么我在 Firebug 的上下文中说“可能”。虽然你可能想看看Firebug Tutorial - Logging, Profiling and Command-Line (Part II)
  • 如果没有指向实际文件的链接,我们(至少我)无法为您提供帮助。我只能说:查看 XmlHttpRequest 中的完整 URL,并确保您的文件在它们应该在的位置。
【解决方案2】:

在发出 ajax 请求时,当前文件夹(标记为 ./ 或缺少该文件夹)是被调用的 html 文件的位置。如果您的 html 文件位于根目录中,则所有 ajax 请求都将相对于根目录。

.htaccess 文件也会影响文件路径。

示例:假设 www 文件夹是您的根目录,并且您具有以下结构:

www/
--->index.php
--->myweb/
--->----->script.js

当您在 index.php 上时,script.js 发出的所有请求都是相对于 index.php 而不是 script.js 完成的。您的 myweb/ripe.php 是相对路径,而不是绝对路径。这告诉我您的索引文件不在 myweb 文件夹中。

【讨论】:

    【解决方案3】:

    如果您在 http://localhost/index.php 中运行 AJAX 脚本,那么这将是正确的结果,但是如果 AJAX 脚本位于 http://localhost/myweb/index.php 中,则 ajax 调用应该是相对的。

    【讨论】:

    • 它实际上在 OP 中相对的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    相关资源
    最近更新 更多