我已经烤新项目。我的简单 AJAX 函数插入到..\templates\Pages\home.php
:
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML =
this.responseText;
}
};
xhttp.open("GET", "myTest.txt", true);
xhttp.send();
}
我的myTest.txt
位于..\webroot\
位置。
为什么这对主页有效,但对项目中的任何其他创建的站点无效?对于除了主页cakePHP以外的所有站点,都找不到我的文本文件。我已经尝试了这个文件的不同位置。
2条答案
按热度按时间7xllpg7q1#
你应该使用“/myTest.txt”来打开URL,如果前面没有
/
,它会被解释为一个相对URL,所以如果你在/page/2
之类的地方,它会寻找/page/myTest.txt
,但它并不存在。vltsax252#
1.将HTTP_ROOT作为bootstrap.php中的常量,保存基本url(不带子路径的站点名称)。
1.在layout-〉head部分定义
<base href="<?= HTTP_ROOT;?>" />
。这将有助于 AJAX 请求中命中没有子路径的站点。1.您可以在布局的
<head>
上的javascript内联代码中使用另一个常量eg-“siteURL”,或者使用包含基本路径的隐藏输入。1.如果需要,请使用常数。siteURL+(如果webroot下还有其他目录)+'myTest.txt'