ajax,Json

// ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术 -->

        // 第一步,创建ajax对象

        let xhr=new XMLHttpRequest();

        // 连接服务器:请求方法(get,post),请求地址,异步(true)或同步(flase) 

(ajax推荐使用异步请求,非阻塞,多个事件可以同步进行)

        xhr.open('get','text.txt',true)

        // 发送请求

        xhr.send();

        // 监控ajax请求到了哪一步 onreadystatechange

        xhr.onreadystatechange=function(){

            //请求状态码 readyState

            if(xhr.readyState==4){

                if (xhr.status==200) {

                console.log(xhr.responseText)

                }

            }

        }


请求状态码 readyState

从0到4发生变化

0:请求未初始化,还没有调用到open方法

1:服务器连接已建立,已调用send方法,正在发生请求

2:请求已接收,send方法完成

3:请求处理中

4:请求已完成,且响应已就绪

 

请求状态码:status数据成功到达客户端

200:‘OK’

404:‘未找到页面’

 JSON    // JSON语法规则

        // 数据在 键/值 对形成保存中

        // 数据由逗号分隔

        // 键必须放在双引号中

        // 字符串也必须放在双引号中

        //最后一条数据后面不用加逗号

        //JSON内不能写注释

        //新建文件data.json {}开头

{

    "name":"XXX",

    "age":XXX,

    "addr":"南京市,雨花台区,小行路"

}

//JSON值 可以是数字、字符串、逻辑值、数组、对象、null

[

    {

        "name":"XXX",

        "age":XX,

        "addr":"南京市,雨花台区,小行路",

        "married":true,

        "friends":["XX","XX"],            //数组,在中括号中

        "pet":{"name":"XX","type":"XX"}  //对象,在大括号中

    },

    {

        "name":"XX",

        "age":XX,

        "addr":"南京市,雨花台区,小行路",

        "married":true,

        "friends":["XX","XX"],

        "pet":{"name":"XX","type":"X"}

    }

]

3.请求mock中的json数据

Mock平台 虚拟接口

<script>

        let xhr=new XMLHttpRequest();      

        xhr.onreadystatechange=function(){

            if(xhr.readyState==4){

                if (xhr.status==200) {

                console.log(xhr.responseText)

                console.log(typeof xhr.responseText)//typeof判断对象类型

                console.log(JSON.parse(xhr.responseText))

                }

            }

        }

        xhr.open('get','https://www.fastmock.site/mock/4dd754b03fd97d8f09bac1e1f0141b21/_JSON1019/user-kw33',true)

        xhr.send();

    </script>

[if !supportLists]4. [endif]渲染

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        table{

            width: 500px;

            border-collapse: collapse;

        }

        th,td{

            border:red 1px solid;

            text-align: center;

        }

    </style>

</head>

<body>

    <table>

        <thead>

            <tr>

                <th>姓名</th>

                <th>年龄</th>

                <th>地址</th>

                <th>宠物</th>

            </tr>

        </thead>

        <tbody>

        </tbody>

    </table>

    <script>

        let xhr=new XMLHttpRequest();      //第一步,创建ajax对象

        xhr.onreadystatechange=function(){

            if(xhr.readyState==4){

                if (xhr.status==200) {

                let mydata=JSON.parse(xhr.responseText)

                console.log(mydata)

                let mytbody=document.querySelector('tbody')

                for (let i = 0; i < mydata.length; i++) {

                    let newtr=document.createElement('tr');


                    let newtd1=document.createElement('td');

                    newtd1.innerHTML=mydata[i].name

                    let newtd2=document.createElement('td');

                    newtd2.innerHTML=mydata[i].age

                    let newtd3=document.createElement('td');

                    newtd3.innerHTML=mydata[i].addr

                    let newtd4=document.createElement('td');

                    newtd4.innerHTML=mydata[i].pet.name

                    newtr.appendChild(newtd1);

                    newtr.appendChild(newtd2);

                    newtr.appendChild(newtd3);

                    newtr.appendChild(newtd4);

                    mytbody.appendChild(newtr)


                }

                }

            }

        }

        xhr.open('get','https://www.fastmock.site/mock/4dd754b03fd97d8f09bac1e1f0141b21/_JSON1019/user-kw33',true)

        xhr.send();

    </script>

</body>

</html>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 值类型 (1)值类型赋值的时候不会相互影响 // 值类型let a = 100let b = aa = 200co...
    WEB前端含光阅读 263评论 0 0
  • 谈谈你对 ajax 的认识?Ajax 的全称是 Asynchronous JavaScript and XML 中...
    Drazy嘀嘀嘀阅读 231评论 0 1
  • ajax介绍 问题:用户注册的时候,没有,用户名是否可用提示,导致用户需要反复的提交表单,用户体验不好。优化:用户...
    胜浩_ae28阅读 413评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,561评论 16 22
  • 创业是很多人的梦想,多少人为了理想和不甘选择了创业来实现自我价值,我就是其中一个。 创业后,我由女人变成了超人,什...
    亦宝宝阅读 1,865评论 4 1