Jquery Ajax URL路径问题

8

我试图为我的网站设计一个消息系统,但我无法使我的ajax运行起来。 因此,我创建了一个更简单的文件交互版本。

这是我的文件,test.php和load.php都在根文件夹(public_html)下。

我在test.php中有ajax函数。load.php只是简单地回显“惊叹”。

$("#test").click(function(){
 alert("Clicked.");

 $.ajax({
     url:"/load.php",
     type:"POST",
     beforeSend: function(){
         alert("testing");   
     },
     success:function(result){
        $("#result").html(result);
        alert("  sss  "+result);
     }
 }).error(function(){alert("wrong");});
 });

现在它完美地运行。

...........如何设置相对路径...................

以下是更复杂的设计:

有三个文件,都在不同的文件夹中:

  1. messages.php(位于根目录下)
    • 显示所有消息
  2. control.php(根/面板)
    • 一个面板将包含在messages.php中
  3. load.php(根/函数)
    • control.php将使用Ajax调用它,然后在control.php中显示结果

因此,当用户在messages.php中加载时,它将加载control.php,然后运行ajax调用control.php。

我很困惑如何为ajax设置这些路径
(在messages.php中包含control.php正常工作)

谢谢


1
您的开发者控制台中是否收到任何错误消息? - Rahul Gupta
你确定你传递给 $.ajax 的 url 是正确的吗?url 是 load.php,但路径是 root/functions/load.php,我认为没问题吧? - itnelo
2个回答

53

为了理解ajax url,有两件事情应该时刻记住。

1. 如果我们在ajax url的开头加上斜杠,那么ajax url的模式将是`hostname/yourFile`,例如:

// current url: http://sample.com/users
// ajax code load from users page

$.ajax({
   url: '/yourFile.php',
   ...
});

// ajax url will be: http://sample.com/yourFile.php

2. 如果我们不在开头使用斜杠,Ajax的URL会添加到浏览器中当前页面的URL之后。例如:

// current url: http://sample.com/users
// ajax code load from users page

$.ajax({
    url: 'yourFile.php',
    ...
});

//...ajax url will be http://simple.com/users/yourFile.php

我希望这些内容能够帮助想要使用 AJAX 的人。 祝编程愉快,谢谢。


让我试试这个 :d - Furkan Gözükara
3
我如何检查另一个文件夹中(与 AJAX 代码所在的文件夹不同)是否存在一个文件? - Aaron Liu

5

如果你要联系的文件在根目录中,你可以使用 /[file].php,这样无论你在哪个页面上,路径都将是正确的。看起来你有一个相对路径的问题。你在控制台中是否收到任何错误信息?


是的,它起作用了。但如果3个文件在不同的文件夹中,我该如何设置相对路径? - user2372160
这就是当你需要使用绝对路径,或者根据当前路径创建动态相对路径时的情况。但是绝对路径是更简单的选项。 - Alex
像这样回到根目录(public_html),然后使用"../folder/folder/file.php"? - user2372160
是的,但是 ../ 意味着“上一级文件夹”。如果您想直接访问特定文件,则应该使用 /folder/folder/file.php - Alex
我现在明白了。这不像 PHP 中的 require 和 include。Ajax 的 URL 使用绝对路径。我感到困惑,因为我的主页面中包含许多 PHP 代码片段文件,它们还包含来自不同文件夹的其他文件。路径设置一团糟。:( 谢谢! - user2372160

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接