前端与后台交互之fetch

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_43843173/article/details/102755206

作者原文

1、关于fetch的了解

1、现代版浏览器自带的fetch,是存在兼容性的,不支持IE678等低版本浏览器的,如果用fetch在低版本浏览器中请求数据是不起作用的。
2、准确的来说fetch就是 promise + XMLHttpRequest 方式的结合。
3、 需要注意的是fetch并不是ajax的进一步封装,他是原生的js。
4、fetch(url)会返回一个Promise对象,所以要定义一个容器来存储。
#下面是相关代码解释

  <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>现代版浏览器自带的fetch实现向后端请求数据</title>
</head>
<body>
    <p class="inp">
        <input type="button" value="点我发送请求" id="clickMe">
    </p>
    <p class="container">
        
    </p>
</body>
<script src="https://cdn.jsdelivr.net/gh/jquery/[email protected]/dist/jquery.js"></script>
</html>

下面是js部分

        $("#clickMe").click(function(){
            //首先定义好一个请求数据的有效地址
            //在这里为了方便模拟,直接去JSONPlaceholder官网中随机找了个api接口,嘻嘻
            //JSONPlaceholder 是支持跨域请求的
            var url = 'http://jsonplaceholder.typicode.com/albums';

            //使用浏览器自带的fetch,其中fetch是原生的:ƒ fetch() { [native code] }
            // 但是fetch(url)会返回一个Promise对象,所以要定义一个容器来存储
            var responseData = fetch(url);

            //Promise是一个抽象的异步处理对象,当这个Promise生成后可以用then()
            // 方法来读取成功状态与失败返回状态的回调函数
            responseData.then((response)=>{
                //成功时返回的数据会存放在response.body流中,所以也需要一个定义容器来接收
                var responseData2 = response.json();

                console.log(responseData2);//返回的是一个Promise对象

                 //同时打印出来的还是一个Promise,还要进行一次处理
                responseData2.then((response)=>{
                    console.log(response);//响应的数据
                    //渲染数据
                    renderData(response);
                });

            },(error)=>{
                return error;
            });
        });

        function renderData(data){
            var _html = ``;
            data.forEach(ele => {
                _html += `
                    <div>
                        <p>id:${ele.id}</p>    
                        <p>Title:${ele.title}</p>    
                    </div>
                `
            });
            $(".container").html(_html);
        }
好了,今天到这里就告一段落了。幸福大概就是你喜欢粘着的那个人哦。。。。。。

猜你喜欢

转载自blog.csdn.net/qq_43843173/article/details/102755206