jquery案例14——ajax、请求接口、处理接口返回数据

一、图片请求

1.案例描述

利用jq中的ajax去请求接口,获取数据,并对数据进行渲染显示到页面上。

2.案例效果演示

说明:目前我只请求了4条数据。

3.案例局部代码

css代码:

html 复制代码
<style>
  .imgSrc img {
        width: 100px;
        height: 80px;
        object-fit: contain;
    }
    
    table {
        text-align: center;
    }
</style>

html代码:

html 复制代码
<table border="1" cellspacing="0" width="600px">
   <tr>
        <th>序号</th>
        <th>壁纸名称</th>
        <th>壁纸图片</th>
    </tr>
</table>

jq代码:

html 复制代码
<script>
   $(function() {
        var list = [];
        $.ajax({
            url: "https://api.apiopen.top/api/getImages?page=0&size=4",
            dataType: "json",
            type: "get",
            async: '',
            data: {},
            success: function(res) {
                console.log(res);
                list = res.result.list;
                //也可以直接在这里处理数据
            },
            error: function(res) {
                // console.log(res);
            }
        });
        console.log(list);
        // 展示获取过来的数据,先对其遍历循环,放到行标签里,之后将创建好的元素插入到table中
        $(list).each(function(i, ele) {
            var $tr = $('<tr><td>' + (i + 1) + '</td><td class="name">' + ele.title + '</td><td class="imgSrc"><img src=' + ele.url + ' /></td></tr>');
            $('table').append($tr);
            // console.log(i);
            // console.log(list[i].title);
        });
    });
</script>

4.案例整体代码

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="referrer" content="no-referrer">
    <title>Document</title>
    <script src="./js/jQuery.min.js"></script>
        <style>
            .imgSrc img {
                width: 100px;
                height: 80px;
                object-fit: contain;
            }
            
            table {
                text-align: center;
            }
        </style>
</head>

<body>
    <table border="1" cellspacing="0" width="600px">
        <tr>
            <th>序号</th>
            <th>壁纸名称</th>
            <th>壁纸图片</th>
        </tr>
    </table>
    <script>
        $(function() {
            var list = [];
            $.ajax({
                url: "https://api.apiopen.top/api/getImages?page=0&size=4",
                dataType: "json",
                type: "get",
                async: '',
                data: {},
                success: function(res) {
                    console.log(res);
                    list = res.result.list;
                },
                error: function(res) {
                    // console.log(res);
                }
            });
            console.log(list);
            // 展示获取过来的数据
            $(list).each(function(i, ele) {
                var $tr = $('<tr><td>' + (i + 1) + '</td><td class="name">' + ele.title + '</td><td class="imgSrc"><img src=' + ele.url + ' /></td></tr>');
                $('table').append($tr);
                // console.log(i);
                // console.log(list[i].title);
            });
        });
    </script>
</body>

</html>

二、短视频请求代码

1.案例效果

2.案例完整代码

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="referrer" content="no-referrer">
    <title>Document</title>
    <script src="./js/jQuery.min.js"></script>
    <style>
        video {
            width: 100%;
        }
        
        table {
            text-align: center;
        }
    </style>
</head>

<body>
    <table border="1" cellspacing="0">
        <tr>
            <th width="50px">序号</th>
            <th width="200px">发布者</th>
            <th width="400px">标题</th>
            <th width="200px">视频</th>
        </tr>
    </table>
    <script>
        $(function() {
            var list = [{}];
            $.ajax({
                url: "https://api.apiopen.top/api/getHaoKanVideo?page=0&size=10",
                // dataType: "json",
                // type: "get",
                async: false, //实现ajax的同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
                // data: {},
                success: function(res) {
                    console.log(res);
                    // console.log(res.result.list);
                    // list = res.result.list;
                },
                error: function(res) {
                    // console.log(res.result.list);
                }
            });
            // console.log(list);
            // 展示获取过来的数据
            $(list).each(function(i, ele) {
                var $num = parseInt(i + 1)
                var $tr = $('<tr><td>' + $num + '</td><td class="name">' + ele.userName + '</td><td>' + ele.title + '</td><td><video src=' + ele.playUrl + ' controls></video></td></tr>');
                $('table').append($tr);
                // console.log(i);
                // console.log(list[i].title);
            });
        });
    </script>
</body>

</html>

五、其他

代码可以进一步封装一下,先这样吧。

html 复制代码
<div class="tab_list">
        <ul>
            <li class="active" onclick="getGoodList(this,0)">全部</li>
            {loop $baike $bvv}
            <li onclick="getGoodList(this,{$bvv['id']})">{$bvv['catname']}</li>
            {/loop}
        </ul>
    </div>
    <div class="tab_con">
        <div class="item">
            这里面插入的内容
        </div>
    </div>
</div>
javascript 复制代码
<script>
    //jq初始化加载全部订单
    $(function () {
        $.ajax({
            url: "<?php echo url('fenleinew');?>",//接口地址
            data: {id: 0},//全部 默认传0
            async: false,
            type: 'GET',
            dataType: 'json',
            error: function (err) {
                console.log(err)
            },
            success: function (res) {
                console.log(res);
                list = res.data
            }
        });
        console.log(list);
        // 展示获取过来的数据,先对其遍历循环,放到标签里,之后将创建好的元素插入到盒子中
        $(list).each(function (i, ele) {
            // console.log(i,ele);
            var $dl = $('<dl><dt><a href="#"><img src="' + ele.image + '" alt="" /></a></dt><dd class="dd2"><a href="#">' + ele.title + '</a></dd>' + '<dd class="dd3"><img src="" /><span class="looks">' + ele.num + '</span></dd><dd class="dd4"><div class="left"><img src="{CLOUD_IMG_PATH}home/header.png" />' + ele.username + '</div><div class="right">' + ele.inputtime + '</div></dd></dl>'
            );
            console.log(ele.image);
            $('.item').append($dl);
        });
    })

    function getGoodList(e, id) {
        console.log(id);
        $(e).addClass("active")
        $(e).siblings().removeClass("active")
       //每次切换先清空,否则会叠加
        $('.item').empty();
        var list = [];
        $.ajax({
            url: "<?php echo url('fenleinew');?>",
            data: {id: id},
            async: false,
            type: 'GET',
            dataType: 'json',
            error: function (err) {
                console.log(err)
            },
            success: function (res) {
                console.log(res);
                list = res.data
            }
        });
        console.log(list);
        // 展示获取过来的数据,先对其遍历循环,放到标签里,之后将创建好的元素插入到盒子中
        $(list).each(function (i, ele) {
            console.log(ele.image);
            var $dl = $('<dl><dt><a href="#"><img src="' + ele.image + '"  alt="" /></a></dt><dd class="dd2"><a href="#">' + ele.title + '</a></dd>' + '<dd class="dd3"><img src="" /><span class="looks">' + ele.num + '</span></dd><dd class="dd4"><div class="left"><img src="{CLOUD_IMG_PATH}home/header.png" />' + ele.username + '</div><div class="right">' + ele.inputtime + '</div></dd></dl>'
            );
            console.log($dl);
            $('.item').append($dl);
        });
    }
</script>

六、总结

  1. 接口地址是从网上扒拉过来的,详情见博客:
    https://blog.csdn.net/c__chao/article/details/78573737
  2. 图片在页面不显示,处理方法:在头部加入代码:
html 复制代码
<meta name="referrer" content="no-referrer">
  1. 视频:https://api.apiopen.top/api/getHaoKanVideo?page=0\&size=10
    图片:https://api.apiopen.top/api/getImages?page=0\&size=4
    后边的参数可更改,size指的是数据的条数。
  2. async: false, //实现ajax的同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
  3. 从聚合找到的接口没法在前台直接使用,一般是后台用的多,需要对接口进行处理。所以有时候前端拿过来直接用,光报错。

接口数据来源于网络,如有侵权,请告知,我将立即删除。

相关推荐
Fan_web10 小时前
jQuery——事件委托
开发语言·前端·javascript·css·jquery
学习使我快乐0114 小时前
AJAX 2——Bootstrap弹框使用、图书管理案例、图片上传方法
ajax·okhttp·bootstrap
Zheng1131 天前
【可视化大屏】将柱状图引入到html页面中
javascript·ajax·html
前端李易安1 天前
ajax的原理,使用场景以及如何实现
前端·ajax·okhttp
萧鼎1 天前
Python常见问题解答:从基础到进阶
开发语言·python·ajax
王小二(海阔天空)2 天前
个人文章合集 - 前端相关
前端·css·vue·jquery
儒雅的烤地瓜2 天前
JS | 如何解决ajax无法后退的问题?
前端·javascript·ajax·pushstate·popstate事件·replacestate
学习使我快乐012 天前
AJAX 1——axios体验、认识URL、常用请求方法、HTTP协议、错误处理、form-serialize插件
前端·http·ajax·okhttp·axios
冬至喵喵4 天前
SPARK调优:AQE特性(含脑图总结)
大数据·ajax·spark
懒洋洋大魔王5 天前
7.Javaweb-Ajax
前端·ajax·okhttp