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

如何设计网站布局中国第一作文网官网

如何设计网站布局,中国第一作文网官网,取代wordpress,软文有哪些推广渠道红宝书第十九讲:详解JavaScript的Fetch API与Ajax请求 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、基本概念:为什么需要Fetch? Fetch API是浏览器提供的现代网络请求工…

红宝书第十九讲:详解JavaScript的Fetch API与Ajax请求

资料取自《JavaScript高级程序设计(第5版)》。
查看总目录:红宝书学习大纲


一、基本概念:为什么需要Fetch?

Fetch API是浏览器提供的现代网络请求工具,替代传统的Ajax(XMLHttpRequest)。核心特点:

  • 基于Promise → 代码更简洁(告别回调函数嵌套) 12
  • 支持流式处理 → 大文件分块传输时不卡死页面 [^6]
  • 灵活配置请求头/请求方法 → 适配各种API需求 34

示例1:发送最简单的GET请求

// 请求JSON数据并解析
fetch('https://api.example.com/data').then(response => response.json()) // 解析为JSON → 返回新Promise.then(data => console.log('获取的数据:', data)).catch(error => console.error('请求失败:', error));

1: 资料1指出fetch()唯一必传参数是资源URL
5: 资料5说明Fetch返回Promise并统一处理响应


二、配置请求:POST请求与自定义参数

通过第二个参数传入配置对象,设置方法、请求头、请求体等 34

示例2:发送带JSON数据的POST请求

const userData = { name: '小明', age: 18 };fetch('https://api.example.com/submit', {method: 'POST',headers: {'Content-Type': 'application/json' // 告诉服务器发送的是JSON},body: JSON.stringify(userData) // 将对象转为JSON字符串
}).then(response => response.text()).then(text => console.log('服务器响应:', text));

3: 资料3展示如何发送JSON和表单数据
4: 资料4提供Request对象的配置示例


三、处理不同类型响应

Fetch返回的Response对象提供多种解析方法:5

  • .json() → 解析为JSON对象
  • .text() → 解析为纯文本
  • .blob() → 解析为二进制数据(如图片)

示例3:下载并显示图片

fetch('https://example.com/image.png').then(response => response.blob()).then(blob => {const img = document.createElement('img');img.src = URL.createObjectURL(blob);document.body.appendChild(img);});

四、错误处理:网络错误≠HTTP错误

需要两步处理错误

  1. 网络层错误(如断网) → 自动触发.catch()
  2. HTTP错误状态码(如404/500) → 需手动检查响应状态

示例4:完整的错误处理

fetch('https://api.example.com/404-page').then(response => {if (!response.ok) { // 检查HTTP状态码是否成功(200-299)throw new Error(`HTTP错误! 状态码: ${response.status}`);}return response.json();}).then(data => console.log(data)).catch(error => console.error('错误信息:', error)); // 处理所有错误

5: 资料5强调需手动检查response.ok


五、跨域请求(CORS)的配置

浏览器默认阻止跨域请求,需设置服务端响应头允许,或配置请求的mode14

// 允许跨域请求(需服务器支持)
fetch('https://another-domain.com/data', {mode: 'cors', // 默认值,可选 'no-cors'等headers: {'Authorization': 'Bearer token123' // 认证令牌}
});

六、高级用法:上传文件

示例5:通过FormData上传文件

<input type="file" id="fileInput">
const fileInput = document.querySelector('#fileInput');
const formData = new FormData();
formData.append('file', fileInput.files[0]); // 添加文件fetch('https://api.example.com/upload', {method: 'POST',body: formData // 自动设置正确的Content-Type
}).then(response => response.json()).then(result => console.log('上传成功:', result));

3: 资料3演示使用FormData发送文件


对比传统Ajax(XMLHttpRequest)

为什么推荐Fetch? 2

  1. 代码更简洁 → 无需监听多个事件(onload/onerror
  2. Promise链式调用 → 更易维护
  3. 自动处理编码 → 如直接解析JSON、Blob

目录:总目录
上篇文章:红宝书第十八讲:详解JavaScript的async/await与错误处理

脚注


  1. 《JavaScript高级程序设计(第5版)》中说明fetch基本用法与请求初始化 ↩︎ ↩︎ ↩︎

  2. 《JavaScript高级程序设计(第5版)》对比XHR与Fetch的优缺点 ↩︎ ↩︎

  3. 《JavaScript高级程序设计(第5版)》提供发送表单数据与文件的实例 ↩︎ ↩︎ ↩︎ ↩︎

  4. 《JavaScript高级程序设计(第5版)》展示Request对象的详细配置 ↩︎ ↩︎ ↩︎ ↩︎

  5. 《JavaScript高级程序设计(第5版)》强调需手动检查响应状态码和错误处理 ↩︎ ↩︎ ↩︎


文章转载自:

http://iGWcoGFl.jbmbj.cn
http://MrWMOUdJ.jbmbj.cn
http://lcsMisw1.jbmbj.cn
http://VdEAS0xN.jbmbj.cn
http://qjQBxpzd.jbmbj.cn
http://okIRYEdu.jbmbj.cn
http://GiorAyzp.jbmbj.cn
http://U3eSci1l.jbmbj.cn
http://ikM8dLm0.jbmbj.cn
http://xGARIoii.jbmbj.cn
http://SxOpSsAI.jbmbj.cn
http://AMe9eBJ3.jbmbj.cn
http://2efMdz1F.jbmbj.cn
http://aOfOBloR.jbmbj.cn
http://OSGZia4K.jbmbj.cn
http://Ap9VlKMR.jbmbj.cn
http://S0PybODA.jbmbj.cn
http://jKovjNiE.jbmbj.cn
http://uWUKZ7Bv.jbmbj.cn
http://7liCh36F.jbmbj.cn
http://Wu1VrGhm.jbmbj.cn
http://QuWQN6k1.jbmbj.cn
http://0f3gtNG1.jbmbj.cn
http://XNV4W2Ta.jbmbj.cn
http://vPtpYRwD.jbmbj.cn
http://U01BDNg8.jbmbj.cn
http://jK3enOmF.jbmbj.cn
http://31HYbVpi.jbmbj.cn
http://3dr2ClaG.jbmbj.cn
http://EI0agNSN.jbmbj.cn
http://www.dtcms.com/wzjs/758881.html

相关文章:

  • 如何给给公司建立网站惠州网站建设技术托管
  • 做项目搭建网站 构建数据库北京做微信网站
  • 做什麽网站有前景h5多人同时交互
  • 网站访问量大怎么办网站快速收录提交
  • 创建个人百度百科网站的哪些标签需要优化
  • 免费网站建设ppt英文wordpress 安装
  • 网站建设廾金手指专业壹柒房屋结构自建设计 网站
  • 珠海网站建设技术支持wordpress二维码 插件下载地址
  • 做百度网站接到多少客户电话号码网站建设 技术团队
  • 公司网站备案韩国优秀网站设计
  • 直播网站开发费亿唐微方网站建设
  • 小程序怎么生成新手seo要学多久
  • 青岛模板化网站义乌 网站制作
  • 西安网站设计西安搜推宝网站开发公司
  • 毕业做网站运营好吗上海品牌全案设计
  • 英文网站设计网站建设费用能否计入广告费
  • .net 网站 调试公司企业网站搭建
  • 公司内部网站系统下载cmsv7
  • 动画设计与制作教案深圳市企业网站seo营销工具
  • php网站开发环境论文wordpress 入侵视频教程
  • 自己做门户网站网站备案撤销怎么办
  • 网站建设 风险说明书asp制作网站
  • ztouchs网站查询手机网站 分辨率
  • 手表商城网站建设方案推广平台网站制作
  • 怎么建立网站黄山春节旅游攻略
  • 使用网站模板快速建站教案建一个网站需要多少费用
  • 在个人网站上做电商营业执照百度搜索引擎录入网站
  • 微信手机网页登录入口好的优化网站推广公司
  • 建设部网站资质标准网站建设必备软件
  • 湖南省建设信息网站查询天猫关键词排名怎么控制