axios &&fetch

 
 
axios
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
 
 
fetch
 

Fetch 的核心在于对 HTTP 接口的抽象,包括 RequestResponseHeadersBody,以及用于初始化异步请求的 global fetch。得益于 JavaScript 实现的这些抽象好的 HTTP 模块,其他接口能够很方便的使用这些功能。

Service Workers 是大量使用Fetch的API的一个示例。

除此之外,Fetch 还利用到了请求的异步特性——它是基于 Promise 的。

 

 

fetch() 必须接受一个参数——资源的路径。无论请求成功与否,它都返回一个 promise 对象,resolve 对应请求的 Response。你也可以传一个可选的第二个参数init(参见 Request)。
一旦 Response 被返回,就有一些方法可以使用了,比如定义内容或者处理方法(参见 Body
 
fetch规范与jQuery.ajax()主要有两种方式的不同,牢记:
  • 当接收到一个代表错误的 HTTP 状态码时,从 fetch()返回的 Promise 不会被标记为 reject, 即使该 HTTP 响应的状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve (但是会将 resolve 的返回值的 ok 属性设置为 false ),仅当网络故障时或请求被阻止时,才会标记为 reject。
  • 默认情况下,fetch 不会从服务端发送或接收任何 cookies, 如果站点依赖于用户 session,则会导致未经认证的请求(要发送 cookies,必须设置 credentials 选项)。
posted @ 2018-12-20 17:30  金晶闪闪放光芒  阅读(191)  评论(0编辑  收藏  举报