行业知识
使用 axios 实现接口共享,分页请求,表单提交
2026-10-24 05:20:26
来源:互联网转载
Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js。它可以执行多种复杂的请求操作。以下是一些使用 Axios 实现的常见请求场景的示例。
()请求共享
请求共享通常指的是确保对于相同的请求,在一定时间内只发送一次,如果有多个地方同时发起相同的请求,后续的请求会等待第一个请求完成后共享结果。这通常可以通过创建一个请求缓存或者使用请求锁来实现。
const axios = require('axios');const requestCache = {};function sharedRequest(url) { if (requestCache[url]) { return requestCache[url]; } const promise = axios.get(url).then(response => { delete requestCache[url]; return response; }).catch(error => { delete requestCache[url]; throw error; }); requestCache[url] = promise; return promise;}// 使用sharedRequest('https://api.example.com/data') .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); 分页请求
分页请求通常用于处理大量数据,这里是一个简单的递归函数,用于处理分页逻辑:
()async function fetchPages(url, page = 1, results = []) { const response = await axios.get(url, { params: { page } }); const data = response.data; results = [...results, ...data.items]; if (data.nextPage) { return fetchPages(url, page + 1, results); } else { return results; }}// 使用fetchPages('https://api.example.com/items') .then(allItems => { console.log('All items:', allItems); }) .catch(error => { console.error(error); }); 表单提交
表单数据通常以 application/x-www-form-urlencoded 或 multipart/form-data 格式发送。以下示例展示了如何提交表单数据:
const axios = require('axios');const qs = require('qs'); // 使用 qs 库来序列化数据const formData = { username: 'example', password: 's3cret'};axios.post('https://api.example.com/login', qs.stringify(formData), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' }}).then(response => { console.log(response.data);}).catch(error => { console.error(error);});
上一篇:浙江5g机房哪里买?
下一篇:温州房管备案电话