【问题标题】:Ajax call cannot find PHP fileAjax 调用找不到 PHP 文件
【发布时间】:2019-09-30 18:08:10
【问题描述】:

我正在做一个 ajax 调用,但它给出了一个错误,说 404 文件未找到。

        $.ajax({ 
            type      : 'POST',
            url       : 'app/lib/functions.php',
            data      : data,
            success   : function(data) {

            }
        });

我的项目结构是这样的

我正在从 main.js(在公共 fodler 中)到 functions.php(在 app 文件夹中)进行 ajax 调用。 请帮忙。我厌倦了这个。 已编辑:我尝试在 ajax 中的 url 前面使用 ../ 和 ../../ ,但它不起作用。我认为它与 app 文件夹有关,因为该文件夹对客户端不可用,类似的。我现在不知道怎么做ajax。 我的 .htaccess 有这个代码,因为我默认重定向到公用文件夹。

RewriteEngine On
RewriteBase /proj_name/

RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]

RewriteRule ^((?!public/).*)$ public/$1 [L,NC]

编辑:如果我删除 .htaccess ,'../app/lib/functions.php' 路径有效

【问题讨论】:

  • 您的网站是由服务器托管,还是在本地服务器上运行?还是您只是在浏览器中将页面作为本地文件加载,没有任何服务器?
  • @IceMetalPunk 我正在使用本地服务器
  • 你试过“/app/lib/function.php”吗?
  • @FélixBrunet 是的
  • 我认为您需要将 php 文件放在公用文件夹中。检查昆汀的这个答案stackoverflow.com/questions/21377416/jquery-ajax-url-not-found

标签: javascript php jquery ajax .htaccess


【解决方案1】:

也许可以试试:

$.ajax({ 
        type      : 'POST',
        url       : '../../app/lib/functions.php',
        data      : data,
        success   : function(data) {

        }
    });

$.ajax({ 
        type      : 'POST',
        url       : '../app/lib/functions.php',
        data      : data,
        success   : function(data) {

        }
    });

【讨论】:

    【解决方案2】:

    我不怎么使用 AJAX,但我相信它应该指向一个路由,而不是直接指向一个文件。那条路径是相对的,永远不会真正解决。

    【讨论】:

    • 那我该怎么办
    • 你能把那个目录 /app/lib/functions.php 变成一个路由,这样你就可以访问 /functions 并发送帖子数据。通过这种方式,它可以像 API 和动态一样访问,并且可以从任何地方调用。当我假设您可能只需要其中的一个函数时,似乎您正在调用整个文件。
    • 您可以使用 DIR 变量并追加路由到文件,如 DIR 。 ../.. 或任何你想去的地方
    猜你喜欢
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    相关资源
    最近更新 更多