在rn官网中,网络请求只提供了fetch。首先来了解一下什么是fetch?在原来的HTTP请求中是用 XMLHttpResquset
,现在fetch是一个很好的替代方法,可以很容易的被其他技术使用。其次呢,fetch还利用了异步的特性——他是基于Promise
的。
前面第一到三部分是我给fetch做的笔记,已经知道fetch用法的看客可以直接绕过,从第四部分看起。
一、fetch与ajax的区别
- 当接收到一个代表错误的 HTTP 状态码时,从 fetch()返回的 Promise 不会被标记为 reject, 即使该 HTTP 响应的状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve (但是会将 resolve 的返回值的 ok 属性设置为 false ),仅当网络故障时或请求被阻止时,才会标记为 reject。
- 默认情况下,fetch 不会从服务端发送或接收任何 cookies, 如果站点依赖于用户 session,则会导致未经认证的请求(要发送 cookies,必须设置 credentials 选项)。
二、fetch的请求
fetch在英文中的原意就是获取
的意思,所以一个fetch请求比XMLHttpResquset
写起来简单多了。
fetch(url,options)
.then(response => response.json())
.then(data => {
console.log(data)