JavaScript 词条目录
前端Wiki/词条/fetch

fetch

定义浏览器内置的网络请求 API,基于 Promise 发起 HTTP 请求并处理响应

fetch 用一行代码发起请求并返回 Promise,比 XMLHttpRequest 现代得多。但有两个著名坑:其一,HTTP 错误状态(404/500)不会 reject,需要手动检查 res.ok;其二,跨域、超时、取消都需要额外处理。

响应处理按内容分流:res.json() 解析 JSON、res.text() 取文本、res.blob() 取二进制。请求配置(method、headers、body、credentials)通过第二个参数对象传入。

JavaScript
async function post(url, data) {
  const res = await fetch(url, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(data)
  });
  if (!res.ok) throw new Error('HTTP ' + res.status);  // 手动查错!
  return res.json();
}

// 超时取消
const ac = new AbortController();
setTimeout(() => ac.abort(), 5000);
fetch(url, { signal: ac.signal });
⚠ 常见误区
🔗 相关词条Promise网络请求async错误处理
← 返回来源章节js/g2c0s3.html