"Cannot GET" 使用 Vue.js 的 REST API 错误

"Cannot GET" error in REST API using Vue.js

我有一个用 Vue.js 制作的项目,我 运行 通过 npm (Node) 的本地主机。

我是 Rest API 的新手。我根据互联网教程制作了一个简单的 REST API。

employees.php

<?php
// Connect to database
    include("../connection.php");
    $db = new dbObj();
    $connection =  $db->getConnstring();

    $request_method=$_SERVER["REQUEST_METHOD"];

    switch($request_method)
    {
        case 'GET':
            // Retrive Products
            if(!empty($_GET["id"]))
            {
                $id=intval($_GET["id"]);
                get_employees($id);
            }
            else
            {
                get_employees();
            }
            break;
        default:
            // Invalid Request Method
            header("HTTP/1.0 405 Method Not Allowed");
            break;
    }

    function get_employees()
    {
        global $connection;
        $query="SELECT * FROM employee";
        $response=array();
        $result=mysqli_query($connection, $query);
        while($row=mysqli_fetch_array($result))
        {
            $response[]=$row;
        }
        header('Content-Type: application/json');
        echo json_encode($response);
    }

    function get_employees($id=0)
    {
    global $connection;
    $query="SELECT * FROM employee";
    if($id != 0)
    {
        $query.=" WHERE id=".$id." LIMIT 1";
    }
    $response=array();
    $result=mysqli_query($connection, $query);
    while($row=mysqli_fetch_array($result))
    {
        $response[]=$row;
    }
    header('Content-Type: application/json');
    echo json_encode($response);
    }

 ?>

我不知道如何从我的 Js 等调用 API。 问题是如何调用我的API。我尝试通过 localhost/api/v1/employees.php 但我得到

"CANNOT GET employees.php"

错误。

我想知道使用 Vue.js 进行 REST API 的正确方法,因为我的数据库在 XAMPP 上,我认为可能有问题。任何 link 都对了解更多很有价值。

谢谢大家!

如果您"cannot get employees.php",您的服务器可能会告诉您该文件实际上不在localhost/api/v1/employees.php

您能否将 employees.php 文件修改为 <?php echo 123; ?>

如果您遇到同样的问题,您可能没有为您的 api/server 使用正确的 URL 结构。

此外,您的服务器可能会阻止来自 Javascript 的流量,因此如果您在浏览器中看到 123,但当您使用 AJAX 时却失败了,那么它可能是你有一个 same-origin policy 问题。