AJAX:XHR(XMLHttpRequest)与Fetch的区别与使用

功能点 XHR Fetch
基本的请求能力 ✔️ ✔️
基本的获取响应能力 ✔️ ✔️
监控请求进度 ✔️
监控响应进度 ✔️ ✔️
Service Worker中是否可用 ✔️
控制cookie的携带 ✔️
控制重定向 ✔️
请求取消 ✔️ ✔️
自定义referrer ✔️
✔️
API风格 Event Promise
活跃度 停止更新 不断更新

一、XHR的基本使用

javascript 复制代码
// 创建新的 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();

// 设置回调函数,处理响应数据
xhr.onload = function() {
  if (xhr.status === 200) {
    console.log(xhr.responseText);
  } else {
    console.error("Request failed. Status code:", xhr.status);
  }
};

// 打开连接
xhr.open("GET", "url");

// 发送请求
xhr.send();

二、Fetch的基本使用

javascript 复制代码
// 使用 Fetch API 发送 GET 请求
fetch("url")
  .then(function(response) {
    // 处理响应
    if (!response.ok) {
      throw new Error("HTTP error " + response.status);
    }
    return response.text();
  })
  .then(function(text) {
    // 输出响应文本
    console.log(text);
  })
  .catch(function(error) {
    // 处理错误
    console.error("Fetch error:", error);
  });
相关推荐
博客zhu虎康11 分钟前
React Hooks 报错?一招解决useState问题
前端·javascript·react.js
灰海24 分钟前
vue中通过heatmap.js实现热力图(多个热力点)热区展示(带鼠标移入弹窗)
前端·javascript·vue.js·heatmap·heatmapjs
王源骏1 小时前
LayaAir鼠标(手指)控制相机旋转,限制角度
前端
大虾写代码1 小时前
vue3+TS项目配置Eslint+prettier+husky语法校验
前端·vue·eslint
wordbaby1 小时前
用 useEffectEvent 做精准埋点:React analytics pageview 场景的最佳实践与原理剖析
前端·react.js
上单带刀不带妹1 小时前
在 ES6 中如何提取深度嵌套的对象中的指定属性
前端·ecmascript·es6
excel2 小时前
使用热力贴图和高斯函数生成山峰与等高线的 WebGL Shader 解析
前端
wyzqhhhh2 小时前
组件库打包工具选型(npm/pnpm/yarn)的区别和技术考量
前端·npm·node.js
码上暴富2 小时前
vue2迁移到vite[保姆级教程]
前端·javascript·vue.js
土了个豆子的2 小时前
04.事件中心模块
开发语言·前端·visualstudio·单例模式·c#