Javascript在任何情况下都能获得真实路径($.ajax)

Javascript在任何情况下都能获得真实路径($.ajax),javascript,jquery,ajax,.htaccess,Javascript,Jquery,Ajax,.htaccess,我的项目具有以下结构: Sil -> css -> js -> clients -> index.php -> response.php index.php 我的问题是文件夹客户端 我的url可以有多种选择,其中一些是: http://localhost/Sil/clients/ http://localhost/Sil/clients/all/ http://localhost/Sil/clie

我的项目具有以下结构:

Sil
    -> css
    -> js
    -> clients
         -> index.php
         -> response.php
    index.php
我的问题是文件夹客户端

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

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.
中的url。我在
clients/index.php
文件中使用以下代码

$.ajax({
   url : 'response.php?type=add',
});
当且仅当我的url是
http://localhost/Sil/clients/

如果url是上面提到的其他选项,它将不起作用,因为文件url输出将是:

http://localhost/Sil/clients/all/response.php?type=add
这显然是错误的

我已经通过使用完整的url解决了这个问题,但我不认为这是最好的方法,因为当我必须通过FTP将文件上载到服务器时,我必须在每个
$中进行更改。ajax
本地主机
更改为我的域名

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

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

但没有成功。您可以用斜杠启动URL以指定“根目录”:

或者在HTML中使用
标记:

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

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

好吧,问题解决了。我以前只尝试过“/clients/response.php”。我就在附近!:顺便说一句,编辑你对
/Sil/clients/response.php?type=add
(这是正确的),我会在几分钟内接受。嘿,还有一件事。这将在一个真正的领域工作?因为在一个真实的域中,我实际上没有一个名为“Sil”的文件夹。如你所知,ftp有
public\u html/
而不是
public\u html/Sil/
@user3355243,那么你所需要更改的(如果你在URL的开头没有使用
/
)就是你的
路径,并且一切都是固定的。但是,这意味着每当我将文件上传到ftp,我都需要在每个页面中更改到
href=“http:://mydomain.com/”
,因为如果我让它成为
href=,它们将无法工作”http://localhost/Sil/clients“
-我想?@user3355243除非您使用PHP或其他服务器端语言,否则是的-您需要在每个站点上更改它或从localhost复制文件夹结构。为了避免这种情况,我倾向于使用子域(以及您的
主机
文件),因此您将访问
funclient.localhost/
,但您仍然需要更改
href
<base href="http://localhost/Sil/clients/" /> 
<script>
    $.ajax({
        url : 'response.php?type=add',
    });
</script>