使用jQuery Ajax调用多个URL

3
我想运行一个Ajax调用,但由于我的htaccess重写规则,我无法找到script.php文件的位置。我在同一个文件夹中有一个index.php、script.php和.htaccess文件。
在htaccess中,有一个RewriteRule将URL格式化为"domain.com/index.php?bla=123",变成"domain.com/123"。
然而,当URL变成"domain.com/asdf/"时,我的JavaScript无法定位PHP脚本,因为路径被设置为"script.php"。 有没有办法从js中通过根目录或FAKE目录运行脚本呢?
url: "script.php" || "../script.php",

为什么需要这样做?你应该知道你的脚本文件的位置。 - Josh Mein
你运行一个调用,如果它返回404,则运行另一个调用? - Mike Robinson
你想要一个随机输出吗?wr是什么条件? - Suresh Atta
我知道我的文件在哪里,但是我有一个特殊的规则在我的htaccess中。 - Sylnois
我不想每次都运行两个调用来进行一次检查,难道没有其他选项来检查哪些路径是可用的吗? - Sylnois
可能是重复问题:https://dev59.com/t2s05IYBdhLWcg3wD9wB - Josh Mein
2个回答

1
你可以使用行内条件,例如这个例子:

you can use inline condition, like this example:

url: (4 > 2 ? "script.php" : "../script.php"),

在这个例子中,你将总是以"url script.php"结束,所以根据自己的需要更改"4 > 2"条件。

在调用之前有没有可能检查哪一个可用? - Sylnois
看,我有一个htaccess文件..如果我访问domain.com,我需要使用URL“script.php”。但是,如果我访问domain.com/SOMEVALUE,我需要使用URL“../script.php”。有什么想法如何在js中处理它? - Sylnois
@Sylnois 你可以使用 window.location 来检查页面的 URL,并根据路径使用相应的 URL,很容易地创建一个 if 语句。 - Josh Mein
这也是我的第一个想法,但我想使用相对路径而不是绝对路径.. 有什么办法可以检查吗? - Sylnois
1
@Sylnois 我还有点困惑。你只有一个脚本文件吗?如果是这样的话,你可以直接使用"/script.php",它会从服务器目录的根目录开始查找脚本文件。 - Josh Mein

0
根据您进一步解释的情况,您应该只需要使用"/script.php"作为您的ajax调用路径。在javascript中,以/开头的路径将带您到服务器的根目录;因此,您可以从那里继续前进并找到您的脚本文件,无论当前页面位于何处。
如果由于某种原因这样不起作用,您可以使用window.location.hostname来获取服务器路径,如下所示:
var scriptUrl = window.location.hostname + "/script.php";

编辑:

根据您的评论,对于两种可能的解决方案,您的路径必须是您的/something/script.php,而不仅仅是/script.php


"/script.php" 没有起作用。你说得对,我的脚本文件和 index.php(其中包含 JavaScript)在同一个文件夹中。我的 htaccess 有一个重写规则,将 domain.com/index.php?bla=123 写成 domain.com/123/.. 我的问题是 GET 参数不一定要设置。有人可以访问页面而不带任何 GET 参数(我的 htaccess 文件会重写并创建一个虚假目录)。所以我的问题是,如果有人像这样调用我的网站 domain.com 或像这样 domain.com/123/,我无法处理我的 JavaScript 中的路径。你知道我的意思吗? - Sylnois
我的第一反应是可以,但不知怎么的,它并没有真正起作用。 - Sylnois
喜欢从配置文件中获取值吗?比如脚本的路径? :D - Sylnois
这就是它,谢谢。 :) 你知道,我想在多个服务器上运行它,每个服务器都有不同的“子文件夹”。我将创建一个配置文件,其中一个参数将是指向我的脚本的方向(在我的情况下为“/something”)。 - Sylnois
是的,那对你应该可行。 :) 否则,你可以通过使用我给你的window.location示例的变体来找到路径。 - Josh Mein
显示剩余3条评论

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