新闻中心
如何用j*ascript发起HTTP请求_fetch API怎么用?
最推荐用 fetch API 发起 HTTP 请求,它原生支持、基于 Promise、语法简洁;需手动检查 response.ok 处理 404/500 等状态码,POST 要设 headers 和 JSON.stringify body,超时需 AbortController 实现。

用 J*aScript 发起 HTTP 请求,现在最推荐的方式就是 fetch API。它原生支持、语法简洁、基于 Promise,比老式的 XMLHttpRequest 更直观,也更容易配合 async/await 使用。
fetch 基本用法:GET 请求
最简单的场景是发一个 GET 请求获取数据:
- 调用
fetch(url)返回一个 Promise,成功时解析出 Response 对象 - Response 对象需要再调用
.json()、.text()或.blob()等方法读取响应体 - 注意:fetch 不会因 HTTP 状态码(如 404、500)自动 reject,需手动检查
response.ok或response.status
示例:
Blackink AI纹身生成
创建类似纹身的设计,生成独特纹身
80
查看详情
async function getData() {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/posts/1');
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
console.log(data);
} catch (err) {
console.error('请求失败:', err);
}
}
发送 POST 请求并传 JSON 数据
提交表单或调用接口常需 POST。关键点是设置 headers 和 body:
立即学习“J*a免费学习笔记(深入)”;
-
Content-Type: application/json告诉后端你发的是 JSON - 用
JSON.stringify()把对象转成字符串再传入body - method 字段必须显式写为
'POST'
示例:
async function createPost() {
const postData = { title: '我的标题', body: '这是内容', userId: 1 };
const response = await fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(postData)
});
return response.json();
}
处理请求头、凭证和超时
实际项目中常需额外配置:
- credentials: 'include' —— 携带 Cookie(跨域时后端也要允许)
- headers 可加 Authorization、X-Requested-With 等自定义字段
- fetch 本身不支持 timeout,但可用
AbortController实现中断
带超时的示例:
async function fetchWithTimeout(url, timeout = 5000) {
const controller = new AbortController();
const id = setTimeout(() => controller.abort(), timeout);
try {
const response = await fetch(url, { signal: controller.signal });
clearTimeout(id);
return response;
} catch (err) {
clearTimeout(id);
if (err.name === 'AbortError') {
throw new Error('请求超时');
}
throw err;
}
}
常见坑和注意事项
刚上手 fetch 容易忽略这些细节:
- fetch 返回的 Promise 只在网络错误(如断网、DNS 失败)时 reject;4xx/5xx 状态码仍算 resolve
- 没写
await response.json()就直接打印 response,看到的是 Response 对象,不是数据 - POST 时漏了
headers或没 stringify body,后端可能收不到数据或报错 - 跨域请求默认不带 Cookie,要加
credentials: 'include'并确保后端响应头有Access-Control-Allow-Credentials: true
基本上就这些。fetch 不复杂但容易忽略细节,配好错误处理和状态判断,日常开发足够用了。
以上就是如何用j*ascript发起HTTP请求_fetch API怎么用?的详细内容,更多请关注其它相关文章!
# 有哪些
# 网站列表页的优化
# 网站建设是什么职业的
# 内江品牌网站建设
# 网站关键词优化概念
# 推广驾校的网站有哪些
# 优化精英seo
# 廊坊市整合营销推广
# 品牌网站建设代运营
# 广德网站优化哪家专业
# 虚拟卡如何做营销推广呢
# 使用它
# 中文网
# 用了
# 相关文章
# 也要
# javascript
# 这是
# 的是
# 如何用
# r
# 状态码
# 跨域
# dns
# ai
# 后端
# access
# app
# cookie
# json
# js
# java
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
AO3网页版合集入口 Archive of Our Own同人作品浏览指南
C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器
AO3最新入口2025公告_AO3中文官网合集
如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】
如何在网页中实现特定地点的随机图片展示
C++ vector二维数组定义_C++ vector of vector用法
Yandex浏览器官方网页版入口 Yandex浏览器最新版官网
J*aScript 字符串标签转换:使用正则表达式高效替换
qq浏览器如何查看和导出已保存的密码 qq浏览器密码管理器数据备份教程
如何使用Go和Martini动态服务解码后的图片
微信商城在哪里打开【步骤】
AI泡沫首次被“刺破”:GPU十年都无法存活!
Windows7怎么硬盘安装 Windows7提取ISO镜像到非系统盘并运行setup.exe实现硬盘直装【教程】
Node.js CSV 数据处理:基于字段空值条件过滤整条记录的策略
星露谷物语官网入口 星露谷物语游戏官网入口
126邮箱手机版登录官网2026_126手机邮箱免费入口最新
中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】
必由学官网快捷入口 必由学网页版在线学习平台
c++20的std::jthread是什么_c++可中断线程与RAII式管理
在J*a中如何使用Stream.map转换元素_Stream映射操作解析
夸克浏览器网页版最新地址 夸克浏览器官方入口合集
Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧
谷歌浏览器最新官方入口链接 谷歌浏览器网页版官网导航
CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示
荒野行动PC版怎么注册_荒野行动PC版账号注册详细流程图文教程
Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】
Angular响应式表单:实现提交后表单及按钮的禁用与只读化
妖精动漫免费平台 妖精动漫官网资源观看网址
Sublime怎么配置Nim语言环境_Sublime Nim代码高亮与补全
小米14应用无法联网原因分析_小米14网络权限修复
Python getattr() 异常处理深度解析:避免程序意外退出
vivo云服务网页版登录 怎么登录vivo云服务网页版
C++如何连接MySQL数据库_C++使用Connector/C++操作MySQL数据库教程
J*aScript中管理异步API调用:确保操作顺序与数据一致性
12306选座怎么选到商务座_12306商务座选择与配置说明
小米Civi 4录制视频过暗_小米Civi 4亮度优化
win11 Snap Layouts怎么用 Win11窗口布局与分屏多任务高效指南【必学】
Python实时数据流中的动态最值查找策略
Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区
如何更改在 Excel 中打开超链接时的默认浏览器
iCloud登录入口网页版 苹果iCloud官网登录
css链接悬停下划线样式如何自定义_使用::after结合content和transition
神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正
汽水音乐车机版8.9下载 汽水音乐车机版8.9版本安装入口
淘宝网网页版登录入口 淘宝官方网页版快捷登录
Win11怎么查看电脑配置_Win11硬件配置检测工具使用
python3时间如何用calendar输出?
腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程
taptap防沉迷怎么解除 taptap解除健康系统限制说明【2025最新】
c++中的std::launder有什么实际用途_c++对象生命周期与指针优化


2025-12-15
浏览次数:次
返回列表