使用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
方法或者get
、post
等等方法
$.ajax('https://api.github.com/', {
success: data => {
// 请求成功的回调函数
console.log(data);
},
error: err => {
// 请求失败的回调函数
console.log(err);
}
})
- 不过现在浏览器支持
Fetch
API了,可以无需其他库就能实现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)
- 设置请求方法(如
get
、post
)。默认情况下为get
- 设置头部,因为一般使用JSON数据格式,所以设置
ContentType
为application/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()...
参考文档#
- https://www.cnblogs.com/libin-1/p/6853677.html
- 这篇文章不错,文章思路和排版值得学习
分类:
JavaScript
标签:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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)