好的,我确定这很容易,而且我很蠢,但似乎无法深究它。
我正在尝试从名为“custom.js”的js文件中对“helpers.php”中的某些代码进行简单的AJAX调用。但是,我一直收到404错误,因为我似乎没有正确遍历文件夹,虽然我确信我是...
我的文件夹结构如下:
html
index.php
js/
custom.js
includes
helpers.php
我在JS中使用的代码:
$(document).on('ready', function() {
$.ajax({
type: "POST",
dataType: "json",
url: "../../includes/helpers.php",
data: { func: "results", days: "7"},
success: function(rows) {
console.log(rows);
}
});
});
但在控制台中我得到了:
The requested URL /includes/helpers.php was not found on this server.
我哪里错了,任何指针都赞赏......
答案 0 :(得分:5)
您似乎有两个问题:
JavaScript在文档的上下文中执行。其中一个影响是,与CSS不同,所有URL都相对于文档而不是.js
文件。你有一个../
太多了。
您正在尝试访问私有PHP文件
可能是 html
是您网站的DocumentRoot。它外面的文件没有获取URL(如果有的话,那么WWW上的任何文件都可以被WWW看到)。
您的目录结构表明您的代码组织应该创建/html/ajax/something.php
include
helpers.php
并调用其中的函数。
答案 1 :(得分:1)
将网址更改为
url: "../includes/helpers.php",
因为你已经将js包含到索引文件中,所以根目录的路径将相对于index.php
而不是custom.js
(我希望我的陈述不会混淆)
答案 2 :(得分:1)
你的url在ajax中相对于你的index.php文件。
答案 3 :(得分:0)
我假设您的js代码是从index.php调用的,因此在那里执行。
路径应该是此页面的相对路径。
$(document).on('ready', function() {
$.ajax({
type: "POST",
dataType: "json",
url: "../includes/helpers.php",
data: { func: "results", days: "7"},
success: function(rows) {
console.log(rows);
}
});
});
答案 4 :(得分:0)
就像PHP包含的那样,包括脚本标记中的Javascript文件与复制粘贴Javascript代码的位置相同
所以改成:
//Previous code...
$.ajax({
type: "POST",
dataType: "json",
url: "../includes/helpers.php",
//Folowing code...
答案 5 :(得分:-1)
或者,您也可以使用静态URL:
$(document).on('ready', function() {
$.ajax({
type: "POST",
dataType: "json",
url: "/includes/helpers.php",
data: { func: "results", days: "7"},
success: function(rows) {
console.log(rows);
}
});
});
答案 6 :(得分:-1)
您是否尝试将custom.js
和helpers.php
放在同一个文件夹中。检查它是否有效