加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

全面说明前端的收集哀求方法

发布时间:2019-03-28 18:35:56 所属栏目:建站 来源:ConardLi
导读:一、前端举办收集哀求的存眷点 大大都环境下,在前端提倡一个收集哀求我们只需存眷下面几点: 传入根基参数(url,哀求方法) 哀求参数、哀求参数范例 配置哀求头 获取相应的方法 获取相应头、相应状态、相应功效 非常处理赏罚 携带cookie配置 跨域哀求 二、前

consumed函数:

  1. function consumed(body) {  
  2.   if (body.bodyUsed) {  
  3.     return Promise.reject(new TypeError('Already read'))  
  4.   }  
  5.   body.bodyUsed = true  
  6. }  

每次挪用text()、json()等函数后会将bodyUsed变量变为true,用来标识返回值已经读取过了,下一次再读取直接抛出TypeError('Already read')。这也遵循了原生fetch的原则:

由于Responses工具被配置为了 stream 的方法,以是它们只能被读取一次

十、fetch的坑点

VUE的文档中对fetch有下面的描写:

行使fetch尚有许多此外留意事项,这也是为什么各人现阶段照旧更喜好 axios 多一些。虽然这个工作在将来也许会产生改变。

因为fetch是一个很是底层的API,它并没有被举办许多封装,尚有很多题目必要处理赏罚:

  • 不能直接转达JavaScript工具作为参数
  • 必要本身判定返回值范例,并执行相应获取返回值的要领
  • 获取返回值要领只能挪用一次,不能多次挪用
  • 无法正常的捕捉非常
  • 老版赏识器不会默认携带cookie
  • 不支持jsonp

十一、对fetch的封装

哀求参数处理赏罚

支持传入差异的参数范例:

  1. function stringify(url, data) {  
  2.   var dataString = url.indexOf('?') == -1 ? '?' : '&';  
  3.   for (var key in data) {  
  4.     dataString += key + '=' + data[key] + '&';  
  5.   };  
  6.   return dataString;  
  7. }  
  8. if (request.formData) {  
  9.   requestrequest.body = request.data;  
  10. } else if (/^get$/i.test(request.method)) {  
  11.   request.url = `${request.url}${stringify(request.url, request.data)}`;  
  12. } else if (request.form) {  
  13.   request.headers.set('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');  
  14.   request.body = stringify(request.data);  
  15. } else {  
  16.   request.headers.set('Content-Type', 'application/json;charset=UTF-8');  
  17.   request.body = JSON.stringify(request.data);  
  18. }  

cookie携带

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读