如何在JavaScript中获取根路径?

Rya*_*yan 5 html javascript jquery

我使用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

我不想写完整的网址甚至使用../技巧,因为没有固定级别的文件夹.

所以,我想要的是从root用户访问login.php,无论域名是什么:

 $.ajax({
    type: "POST",
    url: "http://www.mydomain.com/login.php"
 });
Run Code Online (Sandbox Code Playgroud)

Dan*_*llo 21

关于什么:

$.ajax({
    type: "POST",
    url: "/login.php"
});
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*llo 5

您还可以为JS定义一个变量,以便在HTML头中使用:

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

然后在您的AJAX调用中附加siteRoot变量.

$.ajax({
    type: "POST",
    url: siteRoot+"login.php"
});
Run Code Online (Sandbox Code Playgroud)

只需确保在包含.js文件之前打印siteRoot变量.

另一种实现此功能的方法是使用HTML基本标记.所有客户端请求都将在该目标上进行.在任何链接/脚本声明之前包含它.

<base href="<?php echo $theSiteRoot; ?>" />
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)

编辑:

如果您使用基本标记方法,则不需要向AJAX调用添加任何内容.只是一个普通的电话就可以了.

$.ajax({
    type: "POST",
    url: "login.php"
});
Run Code Online (Sandbox Code Playgroud)