Javascript在任何情况下都可以获得真正的路径($ .ajax)

时间:2014-04-09 10:21:50

标签: javascript jquery ajax .htaccess

我的项目具有以下结构:

Sil
    -> css
    -> js
    -> clients
         -> index.php
         -> response.php
    index.php

我的问题出在文件夹客户端上。

我的网址可以有多种选择,其中一些是:

http://localhost/Sil/clients/
http://localhost/Sil/clients/all/
http://localhost/Sil/clients/stackoverflow/2
http://localhost/Sil/clients/stackoverflow/2/technology/5

如您所见,我使用.htaccess来编写规则。

那就是说,问题在于$.ajax.内的网址。我在clients/index.php文件中使用以下代码。

$.ajax({
   url : 'response.php?type=add',
});

当且仅当我的网址为http://localhost/Sil/clients/时,此代码才能完美运行

如果网址是上述其他选项,则无法正常工作,因为文件网址输出为:

http://localhost/Sil/clients/all/response.php?type=add

这显然是错误的。

我已经通过使用完整网址解决了这个问题,但我不相信这是最好的方法,因为当我必须通过FTP将文件上传到服务器时我必须更改每个$.ajaxlocalhost到我的域名。

$.ajax({
   url : 'http://localhost/Sil/response.php?type=add',
});

我还有其他选择吗?我已经尝试了window.location.pathname

,但没有成功

1 个答案:

答案 0 :(得分:0)

您可以使用斜杠启动URL以指定"根目录":

$.ajax({
    url : '/Sil/clients/response.php?type=add',
});

或在HTML中使用<base>标记:

<base href="http://localhost/Sil/clients/" /> 
<script>
    $.ajax({
        url : 'response.php?type=add',
    });
</script>