В чем проблема получения данных от mysql с помощью Ax ios Vue: PHP? - PullRequest
0 голосов
/ 22 апреля 2020

Способ получения данных: я пытаюсь получить данные с помощью 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();
?>

В чем проблема, я не могу понять !!

1 Ответ

1 голос
/ 22 апреля 2020

Я предполагаю, что вы хотите, чтобы ваш API возвращал данные JSON.

Как вы можете видеть на скриншоте, ваш код PHP в данный момент отправляет (пустой) ответ HTML: headers: { [...] content-type: "text/html; charset=UTF-8", [...] }. Это значение по умолчанию для PHP, если вы намереваетесь вывести JSON, вам придется явно отправить правильный заголовок.

Поскольку ваша функция называется fetchTodo(), я только сделаю ее fetch данных и их вывод в виде 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, если что-то сломается, возможно, что-то как этот .

...