fetch

作者: kino2046 | 来源:发表于2020-02-20 12:46 被阅读0次

Fetct

        fetch:系统基于promise 封装的ajax方法   fatch().then().then()

        缺点:1、不能提供上传进度;2.兼容性问题

基本用法

get方法 post方法

fetch("/test").then(res=>{

              return res.json();

          }).then(res=>{

              console.log(res);

          }).catch(err=>{

              console.log(err);

          })

参数

  - 第一个参数是请求的url

  - 第二个参数 options对象 常用配置

        - `method`: 请求使用的方法,如 `GET、``POST。`

        - `headers`: 请求的头信息,形式为 [`Headers`](https://developer.mozilla.org/zh-CN/docs/Web/API/Headers) 的对象或包含 [`ByteString`](https://developer.mozilla.org/zh-CN/docs/Web/API/ByteString) 值的对象字面量。

        - `body`: 请求的 body 信息:可能是一个 [`Blob`](https://developer.mozilla.org/zh-CN/docs/Web/API/Blob)、[`BufferSource`](https://developer.mozilla.org/zh-CN/docs/Web/API/BufferSource)、[`FormData`](https://developer.mozilla.org/zh-CN/docs/Web/API/FormData)、[`URLSearchParams`](https://developer.mozilla.org/zh-CN/docs/Web/API/URLSearchParams) 或者 [`USVString`](https://developer.mozilla.org/zh-CN/docs/Web/API/USVString) 对象。注意 GET 或 HEAD 方法的请求不能包含 body 信息。

        - `mode`: 请求的模式,如 `cors、` `no-cors` 或者 `same-origin。`

              - `same-origin`表示必须同源,绝对禁止跨域,这个是老版本浏览器默认的安全策略。

              - `no-cors`这个就很特殊了,字面意思是禁止以CORS的形式跨域,其实它的效果是,对外域的请求可以发送,外域服务器无论设不设`Access-Control-Allow-Origin: *`都会接收请求并处理请求,但是浏览器不接收响应,即使外域返回了内容,浏览器也当做没接到


Headers对象

你可以通过 [`Headers()`](https://developer.mozilla.org/zh-CN/docs/Web/API/Headers/Headers) 构造函数来创建一个你自己的 headers 对象

var myHeaders = new Headers();

myHeaders.append("Content-Type", "text/plain");

myHeaders.append("Content-Length", content.length.toString());

myHeaders.append("X-Custom-Header", "ProcessThisImmediately")

或者

myHeaders = new Headers({

  "Content-Type": "text/plain",

  "Content-Length": content.length.toString(),

  "X-Custom-Header": "ProcessThisImmediately",


Response对象

        Response.clone()

                创建一个Response对象的克隆

        Response.json()

                读取 Response对象并且将它设置为已读(因为Responses对象被设置为了 stream 的方式,所以它们只能被读取一次) ,

                并返回一个被解析为JSON格式的promise对象

        Response.text()

                读取 Response对象并且将它设置为已读(因为Responses对象被设置为了 stream 的方式,所以它们只能被读取一次) ,

                并返回一个被解析为USVString格式的promise对象


相关文章

网友评论

      本文标题:fetch

      本文链接:https://www.haomeiwen.com/subject/rlztqhtx.html