贝利信息

什么是REST API_如何使用javascript与其交互

日期:2026-01-06 00:00 / 作者:紅蓮之龍
REST API 是一套设计风格约定,核心是用 URL 标识资源、HTTP 方法表达操作(GET/POST/PUT/PATCH/DELETE)、JSON 为常用数据格式;JavaScript 通过 fetch 或 XMLHttpRequest 发送请求,需正确设置 headers(如 Content-Type)、处理响应状态与 JSON 解析,并注意 CORS 预检限制。

REST API 不是一种工具或框架,而是一套设计风格约定;JavaScript 与它交互的核心就是发送 HTTP 请求并处理响应,关键在于理解 fetchXMLHttpRequest 如何映射 REST 的资源操作(GET/POST/PUT/DELETE)。

REST API 的本质是 URL + HTTP 方法 + 数据格式

它把后端能力抽象成“资源”,每个资源有唯一 URL,用标准 HTTP 方法表达意图:

实际请求中,Content-Type 头通常设为 application/json,请求体和响应体也多为 JSON 格式。

fetch 发送 GET 请求并解析 JSON

这是最常见场景,但容易忽略错误处理和响应状态检查:

fetch('https://jsonplaceholder.typicode.com/posts/1')
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log(data.title))
  .catch(err => console.error('Fetch failed:', err));

fetch 发送 POST 请求并设置请求头

漏掉 Content-Type 或没 JSON.stringify 是高频失败原因:

const user = { name: 'Alice', email: 'alice@example.com' };

fetch('https://jsonplaceholder.typicode.com/users', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(user)
})
.then(res => res.json())
.then(data => console.log('Created:', data.id))
.catch(err => console.error(err));

CORS 和预检请求(OPTIONS)为什么突然失败

浏览器对跨域请求有严格限制,不是后端返回 200 就算成功:

真正难调试的往往不是代码写错,而是没看清 Network 面板里哪一栏标红、哪个请求被拦截、响应头缺了什么字段。