在进行Ajax调用时,基本URL正在发生变化

时间:2017-11-29 20:46:48

标签: ajax cakephp cakephp-3.0

我有一个CakePHP 3.x应用程序,其中一些API是从AJAX调用的。

在AJAX上我像这样调用url:

url: 'user/id/' + id,
method: 'get',
dataType: 'json'
// ...

等。

我的网址是http://localhost:8090/users

所以ajax上的url就像 http://localhost:8090/currentpage/users/id/

但由于某些原因,有时网址会更改为http://localhost:8090/users/id/

我应该改变什么? 发生了什么事?

2 个答案:

答案 0 :(得分:0)

由于您在网址中的操作(参数),这种情况正在发生。

以下是一些示例,以便您更好地理解它。

让我们考虑一下我们项目每个页面的链接。 单击此处添加新用户

此链接将根据您当前的网址

创建不同的网址
ReplaceFileText

要解决此问题,请在开头使用“/”并提供webroot的路径

答案 1 :(得分:0)

我认为另一个答案是正确的。

关于如何解决它,我通常做的是保存从CakePHP在javascript变量中返回的webroot。通过在模板文件的标题中执行此操作,它将随处可用:

<!-- src/Templates/Layout/default.ctp -->
<head>
    <script>
         var webroot = <?= $this->request->webroot ?>
    </script>
</head>

当您想要创建Ajax调用时,请使用从Javascript生成的URL:

url: webroot + "user/id" + id //...

现在,无论您的应用程序放在网络服务器上的哪个位置,呼叫都将按预期进行。