ES6 fetch函数与后台交互实现

 更新时间:2018年11月14日 15:28:36   作者:Ricky_Huang  
最近在学习react-native,遇到调用后端接口的问题。看了看官方文档,推荐使用es6的fetch来与后端进行交互,这篇文章主要介绍了ES6 fetch函数与后台交互实现,感兴趣的小伙伴们可以参考一下

最近在学习react-native,遇到调用后端接口的问题.看了看官方文档,推荐使用es6的fetch来与后端进行交互,在网上找了一些资料.在这里整理,方便以后查询.

1.RN官方文档中,可使用XMLHttpRequest

var request = new XMLHttpRequest();
request.onreadystatechange = (e) = >{
  if (request.readyState !== 4) {
    return;
  }
  if (request.status === 200) {
    console.log('success', request.responseText);
  } else {
    console.warn('error');
  }
};
request.open('GET', 'https://mywebsite.com/endpoint.php');
request.send();

这是http的原生方法,这里不做多的介绍.

2.RN官方文档中,推荐使用fetch

fetch('https://mywebsite.com/endpoint/', {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    firstParam: 'yourValue',
    secondParam: 'yourOtherValue',
  })
}).then(function(res) {  console.log(res)
})

body中的数据就是我们需要向服务器提交的数据,比如用户名,密码等;如果上述body中的数据提交失败,那么你可能需要把数据转换成如下的表单提交的格式:

fetch('https://mywebsite.com/endpoint/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
  },
  body: 'key1=value1&key2=value2'
}).then(function(res) {

    console.log(res)
})

这样可以获取纯文本的返回数据.

如果你需要返回json格式的数据:

fetch('https://mywebsite.com/endpoint/').then(function(res) {

  if (res.ok) {

    res.json().then(function(obj) {

      // 这样数据就转换成json格式的了

    })

  }

}, function(ex) {
  console.log(ex)
})

fetch模拟表单提交:

fetch('doAct.action', { 

  method: 'post', 

  headers: { 

   "Content-type": "application/x-www-form-urlencoded; charset=UTF-8" 

  }, 

  body: 'foo=bar&lorem=ipsum' 

 })

 .then(json) 

 .then(function (data) { 

  console.log('Request succeeded with JSON response', data); 

 }) 

 .catch(function (error) { 

  console.log('Request failed', error); 

 });

不过无论是ajax还是fetch,都是对http进行了一次封装,大家各取所好吧.

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/GlobalFetch/fetch

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • OpenLayer实现自定义坐标点的绘制

    OpenLayer实现自定义坐标点的绘制

    OpenLayers 是一个专为Web GIS 客户端开发提供的JavaScript 类库包,用于实现标准格式发布的地图数据访问。本文将利用OpenLayer实现自定义坐标点的绘制,感兴趣的可以了解一下
    2022-04-04
  • js常用代码段整理

    js常用代码段整理

    以下是平时收集的几个常用代码段,大多数是从网上搜集而来。也均为未找到是谁谁原创,是否允许转载等要求, 所以如果看到的朋友发现其中有些代码是自己写的,还请原谅在下转帖出来
    2011-11-11
  • avalonjs实现仿微博的图片拖动特效

    avalonjs实现仿微博的图片拖动特效

    JavaScript实现仿微博的图片拖动特效,貌似这些天有不少朋友需要这功能,今天发现这款是js制作的好,不敢独享,希望需要的朋友喜欢哦。
    2015-05-05
  • 基于Next.js实现在线Excel的详细代码

    基于Next.js实现在线Excel的详细代码

    Next.js是一款React 开发框架,它可以帮助我们构建 React 应用程序。作为一个轻量级React服务端渲染应用框架,这篇文章主要介绍了基于 Next.js实现在线Excel,需要的朋友可以参考下
    2022-08-08
  • JavaScript异步上传图片文件的实例代码

    JavaScript异步上传图片文件的实例代码

    本文通过实例代码给大家介绍了js异步上传图片文件的方法,包括html和jquery代码,需要的的朋友参考下吧
    2017-07-07
  • 基于Swiper实现移动端页面图片轮播效果

    基于Swiper实现移动端页面图片轮播效果

    这篇文章主要为大家详细介绍了基于Swiper实现移动端页面图片轮播效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 用表格输出1-1000之间的数字实现代码(附特效)

    用表格输出1-1000之间的数字实现代码(附特效)

    本文将介绍下用表格输出1-1000之间的数字同时附有特效,感兴趣的朋友可以参考下哈,希望对你有所帮助
    2013-04-04
  • chrome原生方法之数组

    chrome原生方法之数组

    由于各浏览器的js实现不同,因此各浏览器的原生对象(这里不涉及DOM实现,当然这也有区别)的原生方法也不尽相同,采用原生方法的好处显而易见,使用兼有效率,而且其中有些方法可能包含在以后的ECMAscript规范中
    2011-11-11
  • JS加ASP二级域名转向的代码

    JS加ASP二级域名转向的代码

    JS加ASP二级域名转向的代码...
    2007-05-05
  • 关于小程序优化的一些建议(小结)

    关于小程序优化的一些建议(小结)

    这篇文章主要介绍了关于小程序优化的一些建议(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论