Vue之使用ajax获取json数据,并用v-for循环显示在表格中

运行的时候,出现了php跨域问题,解决办法是在php的头文件中添加了如下代码:

 

header('Content-Type: application/json');
    header('Content-Type: text/html;charset=utf-8');
    header('Access-Control-Allow-Origin:*');
    header('Access-Control-Allow-Methods:*');
    header('Access-Control-Allow-Headers:x-requested-with,content-type');

 

目的:在vue中获取从ajax获取的json数据,并用v-for循环显示在表格中

效果如下:

 

html示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
    <script src="jquery.min.js"></script>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        table {
            margin: 100px auto;
            border: 1px solid #000;
            border-collapse: collapse; /*设置表格的边框是否被合并为一个单一的边框*/
            border-spacing: 0; /*设置相邻单元格的边框间的距离*/
        }

        tr {
            width: 300px;
            height: 50px;
            line-height: 50px;
            border-bottom: 1px solid #000;
            background-color: pink;
        }

        td, th {
            width: 99px;
            height: 50px;
            line-height: 50px;
            text-align: center;
            border-right: 1px solid #000;
        }
    </style>
</head>
<body>
<div id="app">
    <table>
        <thead>
        <tr>
            <th>姓名</th>
            <th>年龄</th>
            <th>住址</th>
        </tr>
        </thead>
        <tbody>
        <tr v-for="site in sites">
            <td v-text="site.name"></td>
            <td v-text="site.age"></td>
            <td v-text="site.address"></td>
        </tr>
        </tbody>
    </table>
</div>
</body>
</html>

<script>
    new Vue({
        el: '#app',
        data: {
            sites: []
        },
        created: function () {
      //为了在内部函数能使用外部函数的this对象,要给它赋值了一个名叫self的变量。
var self = this; $.ajax({ url: '/tablev-for.php', type: 'get', data: {}, dataType: 'json' }).then(function (res) { console.log(res);
          //把从json获取的数据赋值给数组 self.sites
= res; }).fail(function () { console.log('失败'); }) } }) </script>

 

 

php代码如下:

 

<?php
     header('Content-Type: application/json');
      header('Content-Type: text/html;charset=utf-8');
    header('Access-Control-Allow-Origin:*');
    header('Access-Control-Allow-Methods:*');
    header('Access-Control-Allow-Headers:x-requested-with,content-type');

    echo file_get_contents('tablejson.json');

 

json代码示例如下:

 

[{
  "name":"baby",
  "age":27,
  "address":"china weifang"
},
  {
    "name":"黄晓明",
    "age":30,
    "address":"china yantai"
  },
  {
    "name":"鹿晗",
    "age":22,
    "address":"china qingdao"
  }]

 

posted @ 2018-03-14 17:44  乖乖乖码  阅读(41917)  评论(1编辑  收藏  举报