使用Fetch发送Ajax请求

背景#

  • 早期我们可以使用XMLHttpRequest对象来发送ajax请求,但是需要书写多行代码。
// 创建xhr对象
let xhr = new XMLHttpRequest()
// 发送get请求
xhr.open('get', 'https://api.github.com/')
// 监听状态的改变
xhr.onreadystatechange = function () {
  if (xhr.readyState === 4) {
    // 请求成功后获取数据
    console.log(xhr.responseText)
  }
}
// 发送请求
xhr.send()
  • 后来有了jQuery,我们可以采用封装后的ajax方法或者getpost等等方法
$.ajax('https://api.github.com/', {
  success: data => {
    // 请求成功的回调函数
    console.log(data);
  },
  error: err => {
    // 请求失败的回调函数
    console.log(err);
  }
})
  • 不过现在浏览器支持FetchAPI了,可以无需其他库就能实现ajax

Fetch获取数据#

语法:

fetch('url').then(response =>{
  /*do something*/
})
  • fetch方法调用返回一个Promise
  • 想要获取数据则需要调用response适当的方法将可读流转换为我们可以使用的数据。如果方法使用不当则会报错
  • 所有这些获取可以使用数据的方法(response.json等)返回另一个Promise,需要调用.then方法后处理我们转换后的数据
fetch('https://api.github.com/users/test')
	// 转换数据
  .then(response => response.json())
  // 获取响应的json数据
  .then(data => {
  	console.log(data);
	})
  .catch(err => console.log(err))

Fetch发送数据#

语法:

fetch('url',options)
  • 设置请求方法(如getpost)。默认情况下为get
  • 设置头部,因为一般使用JSON数据格式,所以设置ContentTypeapplication/json
  • 设置包含JSON内容的主题。
let content = {some: 'content'};

// The actual fetch request
fetch('some-url', {
  method: 'post',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(content)
})
// .then()...

参考文档#

posted @   ^Mao^  阅读(297)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
主题色彩