fetch和XMLHttpRequest

除了XMLHttpRequest对象来获取后台的数据之外,还可以使用一种更优的解决方案fetch

到现在为止,fetch的支持性还不是很好,但是在谷歌浏览器中已经支持了fetch。fetch挂在在BOM中,可以直接在谷歌浏览器中使用。

查看fetch的支持情况:fetch的支持情况

当然,如果不支持fetch也没有问题,可以使用第三方的ployfill来实现只会fetch:whatwg-fetch

下面我们来写第一个fetch获取后端数据的例子:

// 通过fetch获取百度的错误提示页面
fetch(‘https://www.baidu.com/search/error.html‘) // 返回一个Promise对象
  .then((res)=>{
    return res.text() // res.text()是一个Promise对象
  })
  .then((res)=>{
    console.log(res) 
// 通过fetch获取百度的错误提示页面
fetch(‘https://www.baidu.com/rec?platform=wise&ms=1&rset=rcmd&word=123&qid=11327900426705455986&rq=123&from=844b&baiduid=A1D0B88941B30028C375C79CE5AC2E5E%3AFG%3D1&tn=&clientWidth=375&t=1506826017369&r=8255‘, { // 在URL中写上传递的参数
    method: ‘GET‘,
    headers: new Headers({
      ‘Accept‘: ‘application/json‘ // 通过头指定,获取的数据类型是JSON
    })
  })
  .then((res)=>{
    return res.json() // 返回一个Promise,可以解析成JSON
  })
  .then((res)=>{
    console.log(res) // 获取JSON数据
  })

强制带Cookie

默认情况下, fetch 不会从服务端发送或接收任何 cookies, 如果站点依赖于维护一个用户会话,则导致未经认证的请求(要发送 cookies,必须发送凭据头).

// 通过fetch获取百度的错误提示页面
fetch(‘https://www.baidu.com/search/error.html‘, {
    method: ‘GET‘,
    credentials: ‘include‘ // 强制加入凭据头
  })
  .then((res)=>{
    return res.text()
  })
  .then((res)=>{
    console.log(res)
  })

原文地址:https://www.cnblogs.com/shiyujian/p/9443220.html

时间: 2024-08-30 13:56:24

fetch和XMLHttpRequest的相关文章

fetch和XMLHttpRequest讲解

写在前面 fetch 同 XMLHttpRequest 非常类似,都是用来做网络请求.但是同复杂的XMLHttpRequest的API相比,fetch使用了Promise,这让它使用起来更加简洁,从而避免陷入"回调地狱". 两者比较 比如,如果我们想要实现这样一个需求:请求一个URL地址,获取响应数据并将数据转换成JSON格式.使用fetch和XMLHttpRequest实现的方式是不同的. 使用XMLHttpRequest实现 使用XMLHttpRequest来实现改功能需要设置两个

fetch 代替 XMLHttpRequest (json-server 模拟后台接口)

一.fetch 是 XMLHttpRequest 的替代方案.说白了就是除了 ajax 获取后台数据之外也可以用fetch 来获取. 二.fetch 的支持性还不是很好.挂载于BOM中可以通过浏览器直接访问. 1.支持情况 当然,如果不支持fetch也没有问题,可以使用第三方的ployfill来实现只会fetch:whatwg-fetch 三.JSON-SERVER模拟后台接口 1.初始化项目 npm init 2.安装JSON-SERVER:  npm install --save-dev j

React Native探索(五)使用fetch进行网络请求

前言 React Native可以使用多种方式来进行网络请求,比如fetch.XMLHttpRequest以及基于它们封装的框架,fetch可以说是替代XMLHttpRequest的产物,这一节我们就来学习fetch的基本用法. 1.get请求 fetch API是基于 Promise 设计的,因此了解Promise也是有必要的,推荐阅读MDN Promise教程 . get请求访问淘宝IP库 我们先从最基础的get请求开始,get请求的地址为淘宝IP地址库,里面有访问接口的说明.请求代码如下所

fetch的用法

1.重构公司的后台项目,偶然间在git上看见别人的项目中用到fetch,查了下才知道是ES6的新特性,和ajax的功能相似,都是实现请求,但是多少有些兼容性问题. (1)fetch和XMLHttpRequest fetch就是XMLHttpRequest的一种替代方案,除了XMLHttpRequest对象来获取后台的数据之外,还可以使用一种更优的解决方案fetch. (2)如何获取fetch https://developer.mozilla.org/zh-CN/docs/Web/API/Fet

React-Native基础教程

React-Native牛刀小试仿京东砍啊砍砍到你手软 React-Native基础教程 *React-Native基础篇作者git *React-Native官方文档 *Demo 几个月前facebook推出了React Native框架,允许开发着使用javascript代码来实现iOS原生的应用,随后十月份安卓版的也相继问世,从此我们可以优雅的Learn once, write anywhere… 早在几年前开发者就开始使用javascript+html和PhoneGap来编写各式各样的a

react-native upoad imagepicker

1.不需要组建就可以上传了,用RN自带的formdata实现. const formData = new FormData(); formData.append('file', {uri: imageUri, name: imageName, type: 'image/jpeg'}); 然后放在在fetch或XMLHttpRequest里提交就好了 这里一个大坑是要指定type,不指定的话就会出错 2."react-native-fileupload"上传图片,安卓需要用这个,ios可

腾讯新闻抢金达人活动node同构直出渲染方案的总结

我们的业务在展开的过程中,前端渲染的模式主要经历了三个阶段:服务端渲染.前端渲染和目前的同构直出渲染方案. 服务端渲染的主要特点是前后端没有分离,前端写完页面样式和结构后,再将页面交给后端套数据,最后再一起联调.同时前端的发布也依赖于后端的同学:但是优点也很明显:页面渲染速度快,同时 SEO 效果好. 为了解决前后端没有分离的问题,后来就出现了前端渲染的这种模式,路由选择和页面渲染,全部放在前端进行.前后端通过接口进行交互,各端可以更加专注自己的业务,发布时也是独立发布.但缺点是页面渲染慢,严重

彻底抛弃 jQuery ,不然还留着过年?

我以前很喜欢 jQuery,而且说实话,我是先学jQuery,再学 JavaScript 的.所以我写这篇文章有点像是在背叛 jQuery. 我知道,关于为什么不应该用 jQuery 的文章已经汗牛充栋,但我只是想说下自己的亲身体验. 不用 jQuery 用什么? 随着 web 的发展,新技术长江后浪推前浪,前浪死在沙滩上.就像有些编程语言曾经辉煌过,现在也消失不见了.我认为 jQuery 也不例外,是时候跟 它说再见了,虽然它曾经给我们带来过美妙的编程体验. 为什么要放弃 jQuery 呢?因

使用fetch/XMLHttpRequest/JQ Aajax获取数据

var url = 'http://irun-dev.hupu.com/matchWeb/matchInfo?match_id=79'; // 用fetch方法 /* var fet = fetch(url).then(function(data){ console.log('done...'); if(data.ok){ return data.json(); } }).catch(function(error){ console.log('error...'); }); fet.then(f