JS — fetch封装
function request(url, options = {}) { const defaultOptions = { method: 'GET', headers: { 'Content-Type': 'application/json', }, body: null, }; const requestOptions = { ...defaultOptions, ...options }; return fetch(url, requestOptions) .then(response => { const contentType = response.headers.get('content-type'); if (!response.ok) { throw new Error(`请求失败: ${response.status}`); } else if (contentType && contentType.includes('application/json')) { return response.json(); } else { return response.text(); } }) .catch(error => { console.error('请求失败:', error); throw error; }); } // 使用示例 const apiUrl = 'https://jsonplaceholder.typicode.com/posts'; // 发起GET请求 request(apiUrl) .then(data => { console.log('GET请求成功:', data); }) .catch(error => { console.error('GET请求失败:', error); }); // 发起POST请求 const postData = { title: 'foo', body: 'bar', userId: 1, }; const postOptions = { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(postData), }; request(apiUrl, postOptions) .then(data => { console.log('POST请求成功:', data); }) .catch(error => { console.error('POST请求失败:', error); });
//将默认的请求选项定义为一个对象,并且在用户提供的选项和默认选项之间进行合并。
//根据响应的内容类型来决定是解析为JSON格式还是纯文本格式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)