【问题标题】:GET http://localhost/v5/api/checker 404 (Not Found) SlimGET http://localhost/v5/api/checker 404(未找到)
【发布时间】:2018-06-01 23:38:35
【问题描述】:

我正在尝试通过调用 AJAX 来执行 php 的功能,但是当我单击按钮时它显示此错误,有人知道我该如何解决它?我的代码如下。

PHP:

$app->get('/checker', function () {
    $jsonContents = file_get_contents('data/data.json');
    $data= json_decode($jsonContents,  true);
    foreach ($data as $key =>[$value]) {
        $host = $value['domain'];
        exec('ping -c 2' . $host,$output,$result);
        ECHO $result;
    }
});

JS AJAX:

function CallChecker() {
    $.ajax({
        type: 'GET',
        url: 'api/checker',
        dataType: 'json',
        success: function(data) {
            alert(data)
        }
    });
}

【问题讨论】:

  • 404 表示 URL 无法解析。你确定你的应用正在监听localhost/v5/api
  • 是的,其他按钮都在工作
  • 我认为您正在向无效的 url 发出 ajax 请求。在您的 PHP 代码中,您定义了一个 /checker 路由,在您的 JavaScript 代码中,您向 api/checker 发出请求,在您的问题标题中,您提到了 /v5/api/checker
  • 我正在调用 api/checker,因为 php 文件位于 api 文件夹中
  • PHP 文件是指应用程序的 index.php?您的 index.php 相对于您的 Web 服务器的文档根目录在哪里?

标签: javascript php ajax slim


【解决方案1】:

我非常怀疑 Slim 路由器是否遵循您的目录路径。 我不知道你的完整配置,所以我可能会弄错,但是尝试访问 http://localhost/checkerhttp://localhost/v5/checker 看看它是否显示了一些东西。 p>

同样在 javascript 中,您将 URL 设置为相对的,这可能仅在您从主页调用它时才起作用。相反,您应该像这样添加斜杠:

url: '/api/checker',

但再一次 - 试试 '/checker''/v5/checker',我相信大多数路由器应该是这样工作的。

【讨论】:

    猜你喜欢
    • 2018-11-22
    • 2021-09-14
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    相关资源
    最近更新 更多