教程 ky tutorial

与 JSON / Form 数据交互

Ky 对 JSON 和 Form 数据的处理非常简便,本章节讲解如何发送 JSON、FormData 请求以及接收响应数据。

发送 JSON 数据

使用 json 选项发送 JSON 数据:

javascript
import ky from 'ky';

async function createUser() {
  const data = await ky.post('https://api.example.com/users', {
    json: { name: 'Alice', age: 25 }
  }).json();

  console.log('返回数据:', data);
}

createUser();

`

  • Ky 会自动设置 Content-Type: application/json。
  • 响应可直接使用 .json() 解析为对象。

发送表单数据

使用 FormData 或 application/x-www-form-urlencoded:

FormData 示例

javascript
const formData = new FormData();
formData.append('username', 'Alice');
formData.append('avatar', fileInput.files[0]);

await ky.post('https://api.example.com/users', { body: formData });

URL-encoded 示例

javascript
import ky from 'ky';

const params = new URLSearchParams();
params.append('username', 'Alice');
params.append('age', '25');

await ky.post('https://api.example.com/users', {
  body: params
});
  • 使用 URLSearchParams 时,Ky 自动设置 Content-Type: application/x-www-form-urlencoded。

接收 JSON / 文本 / 二进制数据

  • .json() → JSON 数据
  • .text() → 文本
  • .blob() → 二进制文件
  • .arrayBuffer() → 原始二进制数据
javascript
const data = await ky.get('https://api.example.com/info').json();
console.log(data);

小结

  • Ky 对 JSON 和 Form 数据支持良好,发送请求简洁。
  • 响应解析可根据需求选择 .json()、.text()、.blob() 等方法。
  • 结合 Ky 的实例和全局配置,可统一管理请求体格式和解析方式。