主题
与 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 的实例和全局配置,可统一管理请求体格式和解析方式。