2010-03-17 52 views
5

我使用mod_rewrite重新映射在我的网站的网址的格式如下:如何在JavaScript中获取根路径?

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

而且我不想写满FULL URL,甚至不使用../技巧,因为没有固定级别的文件夹。

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

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

回答

21

什么:

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

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

+0

谢谢一堆:) – Ryan 2010-03-17 21:17:55

5

你也可以定义一个变量的JS在你的HTML头使用:

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

再追加siteRoot变量在你的AJAX调用。

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

只要确保在包含您的.js文件之前打印siteRoot变量。

使这个工作的另一种方法是使用HTML基本标记。所有客户端请求都将针对该目标进行。在任何链接/脚本声明之前加入它。

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

希望这有助于:)

编辑:如果您使用的基本标记方法的

你不会需要任何附加到你的AJAX调用。只是一个普通的电话会做的伎俩。

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