我有一个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/
我应该改变什么? 发生了什么事?
答案 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 //...
现在,无论您的应用程序放在网络服务器上的哪个位置,呼叫都将按预期进行。