如何在JavaScript中获取根路径?

5
我正在使用mod_rewrite来重新映射我的网站中的URL,格式如下:

http://www.mydomain.com/health/54856

http://www.mydomain.com/economy/strategy/911025/

http://www.mydomain.com/tags/obama/new

问题在于我正在向一个文件发出AJAX调用:http://www.mydomain.com/login.php 而且我不想写完整的URL甚至使用../技巧,因为没有固定的文件夹级别。
所以,我想要的是从根目录访问login.php,无论域名是什么:
 $.ajax({
    type: "POST",
    url: "http://www.mydomain.com/login.php"
 });
2个回答

21

这个怎么样:

$.ajax({
    type: "POST",
    url: "/login.php"
});

请确保您的 mod_rewrite 规则允许访问 /login.php


5
您可以在HTML头部定义一个变量,供JS使用:

您可以在HTML头部定义一个变量,供JS使用:

<script type="text/javascript">
// siteRoot will be equal to http://www.yourdomain.com/
var siteRoot = '<?php echo $theSiteRoot; ?>';
<script>

然后在您的AJAX调用中添加siteRoot变量。

$.ajax({
    type: "POST",
    url: siteRoot+"login.php"
});

在包含 .js 文件之前,请确保打印 siteRoot 变量。

另一种使其工作的方法是使用 HTML base 标签。所有客户端请求都将在该目标上进行。在任何链接/脚本声明之前包含它。

<base href="<?php echo $theSiteRoot; ?>" />

希望这能帮到你 :) 编辑: 如果使用基本标签方法,您不需要在AJAX调用中追加任何内容。只需进行普通的调用即可完成操作。
$.ajax({
    type: "POST",
    url: "login.php"
});

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