当前位置: 首页 > news >正文

[JS]认识feach

介绍

feach是浏览器内置的api, 用于发送网络请求

请求方式对比

  1. AJAX: 基于XMLHttpRequest接收请求, 使用繁琐
  2. Axios: 基于Promise的请求客户端, 在浏览器和node中均可使用, 使用简单
  3. fetch: 浏览器内置的api, 基于Promise, 功能简单

基础语法

<body><button>发请求</button><script>document.querySelector('button').addEventListener('click',async function(){// 1.构建查询参数const search = new URLSearchParams({pname: '广东省', cname:'深圳市'}).toString()// 2.发请网络请求 (默认get)const res = await fetch('http://hmajax.itheima.net/api/area?'+ search)// 3.判断请求状态if(res.status >= 200 && res.status < 300) {// 4.获取成功结果 (返回promise)const data = await res.json()console.log(data);} else {// 5.处理请求错误console.log(res.status);}})</script>
</body>

提交表单

<body><!--选择图片 --><input type="file" ><!-- 回显图片 --><img src="" alt=""><script>document.querySelector('input').addEventListener('change', async function(){// 1.准备表单数据const file = this.files[0]const data = new FormData()data.append('img', file)// 2.发起网络请求 (自动设置请求头)const res = await fetch('http://hmajax.itheima.net/api/uploadimg', {method: 'POST',body: data})// 3.判断请求状态if(res.status >=200 && res.status <300) {const { data } = await res.json()console.log(data);// 4.回显图片document.querySelector('img').src = data.url} else {// 5.处理失败console.log('请求失败', res.status);}})</script>
</body>

提交JSON

<body><button>提交表单数据</button><script>document.querySelector('button').addEventListener('click',async function(){// 1.实例化Headerw对象const headers = new Headers()// 2.设置请求头headers.append('content-type','application/json')// 3.发起请求const res = await fetch('http://hmajax.itheima.net/api/register',{method:'POST',headers,body: JSON.stringify({username: 'itheima7777',password:'123456'})})// 4.处理请求结果if(res.status >=200 && res.status <300) {const data = await res.json()console.log(data)}})</script>
</body>

兼容性

如果需要兼容ie 10+, 可以使用 promise-polyfill 和 whatwg-fetch 两个库做兼容处理

http://www.lryc.cn/news/401548.html

相关文章:

  • tomcat如何进行调优?
  • 复现GMM文章(一):图1代码和数据
  • 链接追踪系列-07.logstash安装json_lines插件
  • 火山引擎数据飞轮实践:在电商场景中,如何建设全链路数据血缘?
  • 使用加密软件对企业来说有什么好处
  • STM32入门开发操作记录(二)——LED与蜂鸣器
  • n3.平滑升级和回滚
  • C#WPF DialogHost.Show 弹出对话框并返回数据
  • Kafka Producer发送消息流程之分区器和数据收集器
  • Codeforces Round 958 (Div. 2)
  • <数据集>猫狗识别数据集<目标检测>
  • Figma 中文版指南:获取和安装汉化插件
  • 用c语言写一个贪吃蛇游戏
  • 计算机网络入门 --网络模型
  • 陪玩系统小程序模式APP小程序H5系统搭建开发
  • 算法训练营day72
  • C语言------指针讲解(2)
  • 大数据技术基础
  • 【文心智能体】前几天百度热搜有一条非常有趣的话题《00后疯感工牌》,看看如何通过低代码工作流方式实现图片显示
  • C++20中的constinit说明符
  • Java 中的正则表达式
  • 华为配置蓝牙终端定位实验
  • 搭建hadoop+spark完全分布式集群环境
  • pytorch-pytorch之LSTM
  • jvm优化
  • 网络安全——防御课实验二
  • 朴素模式匹配算法与KMP算法(非重点)
  • [k8s源码]2.CURD deployment
  • 使用base64通用文件上传
  • Python深度学习