jQuery - 找不到ajax url

时间:2014-01-27 09:40:53

标签: php jquery ajax

好的,我确定这很容易,而且我很蠢,但似乎无法深究它。

我正在尝试从名为“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.

我哪里错了,任何指针都赞赏......

7 个答案:

答案 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.jshelpers.php放在同一个文件夹中。检查它是否有效