0

当我从示例 Ajax 或其他函数调用 javascript 中的文件时,javascript 会尝试相对于当前地址调用它,而不是从 baseURL 或根。

例如,如果我在 domain.com/my-page/ 并且我尝试使用调用 php 文件

$.post('ajax/class.designer.php', { action: 'getcard', cardID: id },
        function(data) {
            loadCard(data)
        }, "json");

当我实际上希望它调用 domain.com/ajax/class.designer.php 时,它会尝试调用 domain.com/my-page/ajax/class.designer.php 。

与 CKEditor 等插件相同,它会尝试调用相对于当前地址的 .css 文件。

该应用程序正在使用 mod_rewrite 和友好的 url。一切都被重定向到位于 / 中的 index.php,然后我从 index.php 调用函数来显示页面。

我已经设置了 RewriteBase / 并且我还在我的 HTML 头中将 baseurl 设置为根路径。

注意:当我在本地主机上运行它时,一切正常。当我将它移到我的实时服务器时,问题就开始了。

4

2 回答 2

3

Put a slash in front of ajax ie /ajax. When you leave the slash off you're going to get the relative path, ie the path relative to where you are. To get an absolute path always start with a /.

于 2013-06-04T18:02:54.920 回答
0

上述答案的替代方法是您可以在头部添加一个基本标签。这将告诉浏览器从哪里开始所有相对路径。对于您的特定问题,您将添加:

<base href="http://domain.com">

这将导致您添加的任何相对 URL 从根目录开始。

于 2013-06-05T11:14:12.657 回答