微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

前端与后台交互之fetch

作者原文

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);
        }
好了,今天到这里就告一段落了。幸福大概就是你喜欢粘着的那个人哦。。。。。。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐