繁体   English   中英

Vuejs从PHP / MySQL获取请求不起作用

[英]Vuejs get request from PHP/MySQL doesn't work

我正在编写代码以从MySQL数据库获取数据并使用Vuejs,

this.$http.get("api.php?action=read")
        .then(response => {
          console.log(response);
        }, error => {
          console.log(error);
        });

此请求返回所有api.php内容,并且不返回数据。

这是api.php文件

<?php

  require_once('include/config.php');

  $res = (['error' => false]);

  $action = 'read';

  if (isset($_GET['action'])) {
    $action = $_GET['action'];
  }

  if($action == 'read') {
      $images = array();

      $query = 'SELECT * FROM images ORDER BY id DESC';
      $select_images = mysqli_query($connection, $query);
      while($image = mysqli_fetch_assoc($select_images)) {
        array_push($images, $image);
      }
      echo json_encode($images);
  }

  mysqli_close($connection);
  header("Content-type: application/json");
  echo json_encode($images);
  die();
?>

有人可以帮我吗?

有用,

我加了

header("Access-Control-Allow-Origin: *");

到API文件

并从localhost / vuejs链接发出get请求,这与localhost:8080不同,它可以正常工作

谢谢

在php中包含标题。 注意:返回任何内容之前,应该是第一行。

<?php
header("Access-Control-Allow-Origin: *");

并尝试使用命令提示符运行php代码1st:

php -S localhost:8888 ajaxfile.php

注意:尝试使用与我不同的端口号,因为它无法从运行我的vueProject的相同8080端口获取api。 这将使用您的php创建一个api端点。 哪个将监听http:// localhost:8888 / projectname / api.php

现在当使用axios.get( http:// localhost:8888 / projectname / api.php )将获得api的响应。我还没有尝试过没有axios模块,但我想它应该可以工作。

allRecords: function(){
  axios.get('http://localhost:8888/VueAxios/ajaxfile.php').then(response => {
    this.users = response.data
    console.log(response.data)
  })
  .catch(function (error) {
    console.log(error);
  });
}

此功能对我有用。 注意:在这种情况下,axios很方便。 希望能帮助到你。

尝试使用response.body获取响应数据:

this.$http.get("api.php?action=read")
        .then(response => {
          console.log(response.body);
        }, error => {
          console.log(error);
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM