ajax (数据请求) 很重要

 
 开发项目:
            静态网站: 没有牵扯到数据请求 接口调用  
            动态网站: 数据的请求渲染

        请求数据:
            ajax  : 原生的ajax
            fetch : 原生的请求方法 js
            axios : 后期框架中使用的方式   promise
            jquery: $.ajax()
ajax: Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)   用来描述一种使用现有技术集合的‘新’方法
作用: 异步请求 局部更新网页

        数据请求的方式:
            get
            post
       
        axios
            delete
            options
            put
            patch
            request
 
 四种方式:增删改查
            get : 获取
            post : 添加
            delete : 删除
            put /  patch : 修改
 http状态码: 所有状态码的第一个数字代表了响应的五种状态之一。
            1xx : 消息
            2xx : 成功
            3xx : 重定向
            4xx : 客户端出错  请求错误
            5xx : 服务器端出错   服务器错误
            6xx :
       
        200 OK
        请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。

        304:如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。


        400 Bad Request
            1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
            2、请求参数有误。
        401 Unauthorized   当前请求需要用户验证。

        403 Forbidden : 服务器已经理解请求,但是拒绝执行它。

        404 Not Found :请求失败,请求所希望得到的资源未被在服务器上发现

        500  Internal Server Error :服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。

        面试题:
            常用的http状态码
            304 完整的流程
案例1:
html:
 <div class="wrapper"></div>

js:

 1   let wrapper = document.querySelector('.wrapper')
 2         //   创建 xhr  对象
 3         let xhr = new XMLHttpRequest();
 4         //  建立连接  指定请求的方式  URL地址   
 5         // xhr.open(type, url, boolean);  type:请求方式  url:请求地址   boolean : 同步/异步  默认异步请求
 6         xhr.open('get', 'https://cnodejs.org/api/v1/topics');
 7         //  发送请求
 8         xhr.send();
 9         //  监听事件  
10         xhr.onreadystatechange = function () {
11             //  满足条件  请求成功的
12             //  xhr.status  : http 状态码    xhr.status == 200
13             //  xhr.readyState : 数据响应的状态    xhr.readyState == 4 数据已就绪,返回
14             if (xhr.status == 200 && xhr.readyState == 4) {
15                 //  获取数据
16                 let result = JSON.parse(xhr.responseText);  // json对象 : 有两个方法 1.  json 对象转换为 json 字符串 : JSON.stringify(obj)  2.  json 字符串 转换为 json 对象 : JSON.parse(obj)
17                 console.log(result);
18                 renderHtml(result)
19             }
20         }
21 
22         //  数据渲染 
23         function renderHtml(data) {
24             let html = '';
25             data.data.forEach(function (item, index) {
26                 html += `
27                 <img src='${item.author.avatar_url}' >
28                     <p>${item.title}</p>
29                 `
30             })
31             wrapper.innerHTML = html
32         }

 

posted @ 2022-05-23 19:34  请善待容嬷嬷  阅读(44)  评论(0编辑  收藏  举报