用Axios Vue.PHP从mysql获取数据有什么问题?PHP?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Axios Vue.PHP从mysql获取数据有什么问题?PHP?相关的知识,希望对你有一定的参考价值。

获取数据的方法。我想用以下方法获取数据 axios. 但是没有结果出来,也没有错误!!!

getTodoList() {
    axios({
        method: 'GET',
        url: 'api/todos.php'
    }).then(function(res){
         console.log(res);
    })
}

它给我这个结果。

enter image description here

api.todos.php

<?php
    class Todo {

        private $connection_string ;

        public function __construct() {
            // connection code. Connection is okay. 
        }

        public function fetchTodo() {
            $sql = "SELECT * FROM todo ";
            $result = mysqli_query($this->connection_string, $sql);
        }
    }

    $todo = new Todo;
    $todo->fetchTodo();
?>

到底是什么问题,我看不懂!!?

答案

我假设你希望你的API返回JSON数据。

正如你从截图中看到的,你的PHP代码目前发送的是一个(空)html响应。headers: { [...] content-type: "text/html; charset=UTF-8", [...] }. 这是PHP的默认值,如果你想输出JSON,你必须明确发送正确的头。

由于你的函数被命名为 fetchTodo() 我只会让它 取来 数据,并在其他地方以JSON格式输出。

<?php
    class Todo {

        private $connection_string ;

        public function __construct() {
            // connection code. Connection is okay. 
        }

        public function fetchTodo() {
            $sql = "SELECT * FROM todo ";
            $result = mysqli_query($this->connection_string, $sql);

            // add this line
            return $result ? $result->fetch_all(MYSQLI_ASSOC) : [];
        }
    }

    // tell whoever requested this API that we're going to send JSON data
    header("Content-Type: application/json");

    $todo = new Todo;

    // output whatever fetchTodo() returns as JSON
    echo json_encode($todo->fetchTodo());
?>

注意,这不会处理任何查询错误。我将假设你的连接代码 正确设置错误报告. 如果你还没有,你可以考虑添加一个全局错误处理程序,以便在事情中断时发送JSON响应,也许是这样的 这样.

以上是关于用Axios Vue.PHP从mysql获取数据有什么问题?PHP?的主要内容,如果未能解决你的问题,请参考以下文章

反应 axios 从 Flask 后端获取空数据

Vue axios 从 api 获取数据 -

VUE+axios+php获取后端数据(宝塔面板)

从 Firebase 获取数据(React、Axios)

vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据

如何使用 Axios 从 JSON 中获取数据?