ajax-fetch

fetch 规范与 jQuery.ajax() 主要有三种方式的不同:

  • 当接收到一个代表错误的 HTTP 状态码时,从 fetch() 返回的 Promise 不会被标记为 reject, 即使响应的 HTTP 状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve (但是会将 resolve 的返回值的 ok 属性设置为 false ),仅当网络故障时或请求被阻止时,才会标记为 reject。
  • fetch() 可以不会接受跨域 cookies;你也可以不能使用 fetch() 建立起跨域会话。其他网站的 Set-Cookie 头部字段将会被无视。
  • fetch 不会发送 cookies。除非你使用了credentials 的初始化选项。(自 2017 年 8 月 25 日以后,默认的 credentials 政策变更为 same-origin。Firefox 也在 61.0b13 版本中进行了修改)

fetch请求设置代码

fetch('./00 data.json',{})
        .then(function(reponse){
            // resolve
            console.log(reponse);
            return reponse.json();
        })
        .then(function(data){
            console.log(data);
        })
        .catch(function(){
            // reject
        });

 获取一个 JSON 文件并将其打印到控制台。

最简单的用法是只提供一个参数用来指明想 fetch() 到的资源路径,然后返回一个包含响应结果的promise(一个 Response 对象)。

 

当然它只是一个 HTTP 响应,而不是真的JSON。为了获取JSON的内容,我们需要使用 json() (en-US) 方法(在 Body mixin 中定义,被 Request 和 Response 对象实现)。

response对象

常见的 response 属性有:

  • Response.status — 整数(默认值为200)为response的状态码。
  • Response.statusText — 字符串(默认值为"OK"),该值与 HTTP 状态码消息对应。
  • Response.ok — 如上所示,该属性是来检查response的状态是否在 200 - 299(包括200 和 299)这个范围内。该属性返回一个布尔值 (en-US)
<script>
        /*
        参数   params
        数据   data
        */
        axios.get("./00 data.jaon",{
            // Headers:{

            // },
            params:{
                id:1001
            }
        })
        .then(function(response){
           console.log(response)
        })
        .catch(function(err){
           console.log(err)
        })
    </script>

 

posted @ 2021-11-23 12:05  牵着宇宙来遛弯  阅读(84)  评论(0)    收藏  举报